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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sunny_hu92/article/details/79655571

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  [email protected]
#

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 prevlevel
export用于传递一个或多个变量的值到其他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的文件内容

猜你喜欢

转载自blog.csdn.net/sunny_hu92/article/details/79655571