嵌入式Linux系统脚本小技巧之启动脚本

简介: 嵌入式Linux系统脚本小技巧之启动脚本

这里介绍一个小技巧,在系统启动时,预留一个启动脚本,在需要临时修改一些系统配置或者额外启动程序时比较方便。


这个方法主要针对只读文件系统,如果是可读写的文件系统则不需要了,可读写的文件系统可以随时修改。


我们都知道一般嵌入式Linux系统启动脚本是/etc/init.d/rcS,我们的应用程序启动入口也是在这个脚本里添加,一般会在这里添加一个应用程序的启动脚本,最好不要再这里直接添加启动程序,这样便于后期应用程序启动脚本的修改,而不再需要修改文件系统里的脚本。


现在在系统启动脚本rcS里添加一个应用程序的启动脚本,暂且叫init_app.sh,这个init_app.sh里面,主要是启动应用程序,初始化应用配置参数。


需要预留的启动脚本,就可以加在这个init_app.sh脚本里,预留脚本名暂定为:run.sh,这个脚本的路径放在系统的可读写分区(一般和配置参数放在一起),添加脚本如下:

if [ -f /mnt/data/run.sh ]
then
    /bin/sh /mnt/data/run.sh &
fi

这里先检测脚本是否存在,如果存在则执行,不存在则不执行,这里有两点说明下:


  1. 使用/bin/sh启动脚本,这样不管这个脚本有没有可执行权限,都会执行。
  2. 使用后台运行“&”,这样不影响init_app.sh脚本的正常执行。


如果使用现场需要临时启动一个额外的程序,我们就不需要再去改应用程序里的启动脚本了,直接再run.sh里添加即可。


常用的是对系统做额外的配置的比较多,那配置命令就写在这个脚本里面,比如修改网络路由表、添加一些链接文件、清空日志等等。


目录
相关文章
|
7月前
|
Ubuntu Linux Anolis
Linux系统禁用swap
本文介绍了在新版本Linux系统(如Ubuntu 20.04+、CentOS Stream、openEuler等)中禁用swap的两种方法。传统通过注释/etc/fstab中swap行的方式已失效,现需使用systemd管理swap.target服务或在/etc/fstab中添加noauto参数实现禁用。方法1通过屏蔽swap.target适用于新版系统,方法2通过修改fstab挂载选项更通用,兼容所有系统。
649 3
Linux系统禁用swap
|
7月前
|
Linux
Linux系统修改网卡名为eth0、eth1
在Linux系统中,可通过修改GRUB配置和创建Udev规则或使用systemd链接文件,将网卡名改为`eth0`、`eth1`等传统命名方式,适用于多种发行版并支持多网卡配置。
1193 3
|
Ubuntu Linux 网络安全
Linux系统初始化脚本
一款支持Rocky、CentOS、Ubuntu、Debian、openEuler等主流Linux发行版的系统初始化Shell脚本,涵盖网络配置、主机名设置、镜像源更换、安全加固等多项功能,适配单/双网卡环境,支持UEFI引导,提供多版本下载与持续更新。
742 3
Linux系统初始化脚本
|
7月前
|
存储 安全 Unix
七、Linux Shell 与脚本基础
别再一遍遍地敲重复的命令了,把它们写进Shell脚本,就能一键搞定。脚本本质上就是个存着一堆命令的文本文件,但要让它“活”起来,有几个关键点:文件开头最好用#!/usr/bin/env bash来指定解释器,并用chmod +x给它执行权限。执行时也有讲究:./script.sh是在一个新“房间”(子Shell)里跑,不影响你;而source script.sh是在当前“房间”里跑,适合用来加载环境变量和配置文件。
653 9
|
7月前
|
存储 Shell Linux
八、Linux Shell 脚本:变量与字符串
Shell脚本里的变量就像一个个贴着标签的“箱子”。装东西(赋值)时,=两边千万不能有空格。用单引号''装进去的东西会原封不动,用双引号""则会让里面的$变量先“变身”再装箱。默认箱子只能在当前“房间”(Shell进程)用,想让隔壁房间(子进程)也能看到,就得给箱子盖个export的“出口”戳。此外,Shell还自带了$?(上条命令的成绩单)和$1(别人递进来的第一个包裹)等许多特殊箱子,非常有用。
674 2
|
监控 Linux
linux服务器显卡监控脚本
linux服务器显卡监控脚本
335 0
|
监控 Shell Linux
Linux 性能监控之CPU&内存&I/O监控Shell脚本1
Linux 性能监控之CPU&内存&I/O监控Shell脚本1
500 0