微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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文件文件内容模板

                c. 启动创建的 service。

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

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

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐