所有的機器都有可能重啟,很多應用程序、服務需要在機器啟動的時候自動執行,這裡記錄兩種開機執行腳本的方法及相關的一個命令。
第一種:
修改/etc/rc.local
在/etc/rc.local的exit 0語句之間添加啟動腳本。腳本必須具有可執行權限。
例如添加:./home/username/abc.sh
第二種:
用update-rc.d命令添加開機執行腳本
創建要開機自動執行的腳本:/home/test/blog/startBlog.sh,並給予可執行權限:chmod +x /home/test/blog/startBlog.sh。
在/etc/init.d目錄下創建鏈接文件到前面的腳本: ln -s /home/test/blog/startBlog.sh /etc/init.d/startBlog。
進入/etc/init.d目錄,用 update-rc.d 命令將連接文件 startBlog 添加到啟動腳本中去:update-rc.d startBlog defaults 99。
其中的99表示啟動順序,取值范圍是0-99。序號越大的越晚執行。
移除啟動的腳本:update-rc.d -f startBlog remove。
-f選項表示強制執行。
update-rc.d命令
此命令用於安裝或移除System-V風格的初始化腳本連接。腳本是存放在 /etc/init.d/目錄下的,當然可以在此目錄創建連接文件連接到存放在其他地方的腳本文件。
此命令可以指定腳本的執行序號,序號的取值范圍是 0-99,序號越大,越遲執行。
用法
update-rc.d [-n] [-f] name remove 用於移除腳本。
update-rc.d [-n] name default [NN | SS KK],NN表示執行序號(0-99),SS表示啟動時的執行序號,KK表示關機時的執行序號,SS、KK主要用於在腳本直接的執行順序上有依賴關系的情況下。
選項
-n:不做任何事情,只顯示將要做的。(預覽、做測試)
-f:強制移除符號連接,即使 /etc/init.d/script-name 仍然存在。
舉例
update-rc.d startBlog defaults 99:添加一個啟動連接,執行序號是99。
如果執行腳本B需要先執行腳本A,如下設置(A的啟動順序比B的小,結束順序比B的大):
update-rc.d script_for_A defaults 80 20
update-rc.d script_for_B defaults 90 10
添加一個不被其他任何服務需要的服務:update-rc.d script_name defaults 98 02,
添加一個需要 開始/結束 序號在20的服務的服務:update-rc.d script_depends_on_service_20 default 21 19。
移除一個腳本,假定/etc/init.d/目錄下的腳本文件已先被刪除:update-rc.d script_name remove。
移除一個腳本,不管/etc/init.d/目錄下的腳本文件是否已刪除:update-rc.d -f script_name remove。