嵌入式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里添加即可。


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


目录
相关文章
|
3天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
17 3
|
3天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
15 2
|
3天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
18 3
|
6天前
|
安全 Linux 数据安全/隐私保护
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。
在 Linux 系统中,查找文件所有者是系统管理和安全审计的重要技能。本文介绍了使用 `ls -l` 和 `stat` 命令查找文件所有者的基本方法,以及通过文件路径、通配符和结合其他命令的高级技巧。还提供了实际案例分析和注意事项,帮助读者更好地掌握这一操作。
23 6
|
消息中间件 缓存 Unix
[面试必备]嵌入式Linux内核开发必须了解的三十道题
[面试必备]嵌入式Linux内核开发必须了解的三十道题
|
Linux
嵌入式Linux QT开发之如何实现获取磁盘空间大小的应用逻辑
嵌入式Linux QT开发之如何实现获取磁盘空间大小的应用逻辑
241 0
|
Linux Go 人机交互
嵌入式linux之go语言开发(十三)LittlevGL,漂亮的嵌入式GUI的go语言绑定
嵌入式linux之go语言开发(十三)LittlevGL,漂亮的嵌入式GUI的go语言绑定
|
存储 XML JSON
嵌入式linux之go语言开发(十二)参数配置文件存储模块开发
嵌入式linux之go语言开发(十二)参数配置文件存储模块开发
|
Linux Go C语言
嵌入式linux之go语言开发(十一)让web服务器跑在终端上,通过网页配置终端参数
嵌入式linux之go语言开发(十一)让web服务器跑在终端上,通过网页配置终端参数
|
存储 监控 物联网
嵌入式linux之go语言开发(十)
嵌入式linux之go语言开发(十)