Linux笔记---设置程序开机自启动

2019-07-13 09:06发布

Linux系统下,如何使程序开机自启动。可以通过修改开机启动脚本 /etc/init.d/rcS ,添加要启动程序的路径完成。 比如,内核4.1.15中/etc/init.d/rcS修改如下: #!/bin/sh # # rcS Call all S??* scripts in /etc/rcS.d in # numerical/alphabetical order. # # Version: @(#)/etc/init.d/rcS 2.76 19-Apr-1999 miquels@cistron.nl # PATH=/sbin:/bin:/usr/sbin:/usr/bin runlevel=S prevlevel=N umask 022 export PATH runlevel prevlevel export QT_QPA_PLATFORM=eglfs export FB_MULTI_BUFFER=2 #/usr/bin/dashboard & /usr/bin/3Ddash & #/usr/bin/serialPort & # Make sure proc is mounted # [ -d "/proc/1" ] || mount /proc # # Source defaults. # . /etc/default/rcS # # Trap CTRL-C &c only in this shell so we can interrupt subprocesses. # trap ":" INT QUIT TSTP # # Call all parts in order. # exec /etc/init.d/rc S 其中: PATH=/sbin:/bin:/usr/sbin:/usr/bin
设置默认有效执行路径 runlevel=S The following runlevels are defined:

   N       System bootup (NONE).
   S       Single user mode (not to be switched to directly)
   0       halt
   1       single user mode
   2 .. 5  multi user mode
   6       reboot 用户等级,“S"表示单用户; prevlevel=N目前不太清楚,貌似shell变量 umask 022权限的基本码-umask(屏蔽位),按规定,文件夹的基本码rwxrwxrwx(777),文件的基本码rw-rw-rw-(666)
umask的值在文件中有设定,默认情况下是022
export PATH runlevel prevlevelexport用于传递一个或多个变量的值到其他shell,相当于声明了一些“全局变量”
#/usr/bin/dashboard & /usr/bin/3Ddash & #/usr/bin/serialPort &为添加的自启动程序路径,注意要包含在PATH中,这样才是有效路径 trap ":" INT QUIT TSTP捕捉INT、QUIT、TSTP信号
trap 为shell中捕捉信号的命令,其基本形式有三种:
(1)trap "cmd" signal-list
trap收到与signal-list列出的信号相同时,执行cmd命令
(2)trap  signal-list
执行信号的本身默认的操作
(3)trap " " signal-list
忽视signal-list指定的信号
exec /etc/init.d/rc S 转去执行/etc/init.d/rc的文件内容