arm linux添加自启动脚本

        由于文件系统类型的不同,自启动脚本的制作方法也不一样,在此仅以 Systemd 类型和 init 类型的文件系统进行介绍,在说明自启动脚本制作方法之前先介绍两种文件类型的区别。

一. Systemd(service)和 init的区别

        1. init。以前的Linux启动都是用init进程,这是一个串行启动,也就是说只有前一个进程启动完,才会启动下一个进程。init进程只是执行启动脚本,不管其他事情。脚本需要自己处理各种情况,导致脚本变得很长,导致启动脚本复杂。

        启动服务的方法:仅仅是调用/etc/init.d/目录下的脚本,形如 S90app.sh,数字代表启动顺序,app为名字。

        2. Systemd。现在较新的Linux 都使用systemd替代了 init,其提高了系统的启动速度,解决了期待脚本复杂的情况。

        Systemd 中的自启动脚本和 service 相关,如果需要添加一个自启动脚本,只需要在开机启动时启动一个自己创建的 service 即可。

二. 添加自启动脚本的方法

        1. init.添加自启动脚本的方法。/etc/ini.d/rcS 这个脚本会在开机自启动运行,脚本内容如下,此脚本会遍历 /etc/init.d 目录下文件,比如脚本形如 S90app.sh,即可执行。

#!/bin/sh

# Start all init scripts in /etc/init.d
# executing them in numerical order.
#
for i in /etc/init.d/S??* ;do    #遍历目录下的脚本,依次执行

     # Ignore dangling symlinks (if any).
     [ ! -f "$i" ] && continue

     case "$i" in
	*.sh)
	    # Source shell script for speed.
	    (
		trap - INT QUIT TSTP
		set start
		. $i
	    )
	    ;;
	*)
	    # No sh extension, so fork subprocess.
	    $i start
	    ;;
    esac
done

        2. systemd 添加自启动脚本的方法。

                a. 首先准备好启动脚本。此处为 /System/Startup/SysStartup.sh

                b. 创建一个 service文件。进入/etc/systemd/system/,创建一个sysapp_launch.service文件,文件内容模板为

arm linux添加自启动脚本

                c. 启动创建的 service。

                注:1. 在 /etc/systemd/system目录是一个符号链接,指向 /usr/lib/systemd/system里面的sysapp_launch.service文件。

                        2. 支持 Systemd 的软件,安装的时候,会自动在/usr/lib/systemd/system目录添加一个配置文件, 而 Systemd 启动时,只执行/etc/systemd/system目录里面的配置文件。

上一篇:第十七章 认识系统服务 (daemons)


下一篇:Jsoncpp用法小结 VS2019