linux系統下,使程式開機自動啟動的方法:
1)將執行程式指令碼的命令列寫入/etc/rc.d/rc.local,linux開機載入完所有服務,會執行這個指令碼。
一般使用者自己編寫的指令碼和命令是新增到這個檔案中
2)程式指令碼存放在/etc/init.d下
然後在/etc/rc5.d下建立乙個軟鏈結s***,指向程式指令碼
s是指開機啟動
5是因為一般進入的x windows的執行級別是5.
詳細說明:
1)redhat的啟動方式和執行次序是:
a)載入核心;
b)執行init程式;
/etc/rc.d/rc $runlevel # $runlevel為預設的執行模式。根據其引數指定的執行模式(執行級別,在inittab檔案中可以設定)來執行相應目錄下的指令碼。凡是以kxx開頭的,都以stop為引數來呼叫;凡是以sxx開頭的,都以start為引數來呼叫。呼叫的順序按xx從小到大來執行。(其中xx是數字、表示的是啟動順序)例如,假設預設的執行模式是3,/etc/rc.d/rc就會按上述方式呼叫/etc/rc.d/rc3.d/下的指令碼。
/etc/rc.d/rc.local #相應級別服務啟動之後,執行該檔案。redhat中的執行模式2、3、5都把/etc/rc.d/rc.local做為初始化指令碼中的最後乙個,所以使用者可以自己在這個檔案中新增一些需要在其他初始化工作之後,登入之前執行的命令。
/sbin/mingetty #等待使用者登入
c)至此,linux的啟動結束。
2)init程序,它是乙個由核心啟動的使用者級程序。
核心自行啟動(已經被載入記憶體,開始執行,並已初始化所有的裝置驅動程式和資料結構等)之後,就通過啟動乙個使用者級程式init的方式,完成引導程序。所以,init始終是第乙個程序(其程序編號始終為1)。
核心會在過去曾使用過init的幾個地方查詢它,它的正確位置(對linux系統來說)是/sbin/init。如果核心找不到init,它就會試著執行/bin/sh,如果執行失敗,系統的啟動也會失敗。
3)執行級就是作業系統當前正在執行的功能級別。這個級別從1到6 ,具有不同的功能。
不同的執行級定義如下
# 0 -停機(千萬不能把initdefault設定為0)
# 1 -單使用者模式# s init s = init 1
# 2 - 多使用者,沒有 nfs
# 3 -完全多使用者模式(標準的執行級)
# 4 -沒有用到
# 5 - x11多使用者圖形模式(xwindow)
# 6 -重新啟動(千萬不要把initdefault設定為6)
這些級別在/etc/inittab 檔案裡指定。這個檔案是init 程式尋找的主要檔案,最先執行的服務是放在/etc/rc.d 目錄下的檔案。在大多數的linux 發行版本中,啟動指令碼都是位於 /etc/rc.d/init.d中的。這些指令碼被用ln 命令連線到 /etc/rc.d/rcn.d 目錄。(這裡的n 就是執行級0-6)
4)chkconfig命令可以設定服務的各個級別的自啟動
參照**:
linux系統如何設定程式開機自啟動
在終端中輸入 nano etc rc.local回車進入rc.local在文字 在文字的exit 0前新增需要啟動的程式。指令碼啟動方式 home find start.sh start python程式啟動方式 python3 home find b999.py c c 程式啟動方式 sudo h...
Linux系統如何設定開機程式自啟動
在linux系統如何讓程式開機時自動啟動 這是乙個最簡單的方法,編輯 etc rc.local 把啟動程式的shell命令輸入進去即可 要輸入命令的全路徑 類似於windows下的 啟動 使用命令vi etc rc.local 然後在檔案最後一行新增要執行程式的全路徑。例如,每次開機時要執行乙個ha...
開機自啟動程式
昨天做了個brew開機自啟動的demo,在此記下該程式的要點。brew平台可以做到開機就自啟動brew 應用,這需要在mif中做如下設定 增加乙個notification aeeclsid shell 設定notififer aeeclsid shell 設定mask nmask shell ini...