Linux開機自啟動的幾種方式
Linux開機自啟動的幾種方式:
作業系統:linux mint 17.3
第一種方式:在/etc/rc.local檔案中加入啟動命令
這種方式適合linux使用者手動配置自啟動程式。
第二種方式:在/etc/rc[0-6].d/目錄建立軟連結,軟連結指向/etc/init.d/目錄下的控制指令碼
下圖可以看出/etc/rc2.d目錄下的檔案指向路徑是/etc/init.d下的指令碼檔案
/etc/rc[0-6].d目錄下檔案的命名規則:S|K + nn + script
0-6是linux作業系統的執行級別,執行runlevel檢視當前執行級 執行級別0:系統停機狀態,系統預設執行級別不能設為0,否則不能正常啟動 執行級別1:單使用者工作狀態,root許可權使用者,用於系統維護,禁止遠端登陸 執行級別2:多使用者狀態(沒有NFS) 執行級別3:完全的多使用者狀態(有NFS),登陸後進入控制檯命令列模式 執行級別4:系統未使用,保留 執行級別5:X11控制檯,登陸後進入圖形GUI模式 執行級別6:系統正常關閉並重啟,預設執行級別不能設為6,否則不能正常啟動 S|K,S開頭命名的是開機要執行的指令碼,K開頭命名的是關機要執行的指令碼 nn取值0-100,表示優先順序,數字越大,優先順序越低 script是軟連結指向的指令碼的檔名
/etc/init.d目錄下的控制指令碼接受引數start|stop|restart|status|force-reload
update-rc.d命令為/etc/init.d目錄下的指令碼建立或刪除到/etc/rc[0-6].d的軟連結
增加一個服務 新增這個服務並讓它開機自動執行 update-rc.d apache2 defaults 並且可以指定該服務的啟動順序: update-rc.d apache2 defaults 90 還可以更詳細的控制start與kill順序: update-rc.d apache2 defaults 20 80 其中前面的20是start時的執行順序級別,80為kill時的級別。也可以寫成: update-rc.d apache2 start 20 2 3 4 5 . stop 80 0 1 6 . 其中0~6為執行級別。 刪除一個服務 update-rc.d -f apache2 remove
第三種方式 設定程式的.desktop檔案
通過將應用程式的.desktop檔案放在自啟動目錄下,那麼當用戶登陸桌面環境時,就會自動啟動這些應用程式。
linux中自啟動目錄是$XDG_CONFIG_DIRS/autostart和$XDG_CONFIG_HOME/autostart這兩個,可以列印看一下,有的可能只有其中一個。
把設定好的.desktop放在這兩個目錄下,那麼指定的程式就會在桌面環境啟動時啟動,當兩個自啟動目錄同時存在相同的檔案時,只會執行其中一個($XDG_CONFIG_HOME)。
program.desktop檔案寫法:
[Desktop Entry] Name=program Exec=/usr/bin/program Type=Application Comment=my program
只需要有這關鍵的幾行就可以了,Exec的路徑一定要正確。.desktop檔案還有其他定製項,可參考其他文章。
NOTE:
第二種和第三種方式,更適合的應用場景是開發者打包安裝包的時候,寫入到安裝指令碼,這樣就不用使用者手動操作去新增自啟動項了
https://me.csdn.net/Aggressive_snail