天天看點

Linux筆記---設定程式開機自啟動

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的檔案内容

繼續閱讀