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