2021-05-12 14:32:11
Debian開機啟動管理
2020-06-16 17:38:30
Linux下,services的啟動、停止等通常是通過/etc/init.d
的目錄下的指令碼來控制的。
在啟動或改變執行級別是在/etc/rcX.d
中來搜尋指令碼。其中X是執行級別。
比如Apache2,安裝完成後,預設或啟動。比如我安裝了vagrant
的LMPA的box。需要禁止掉自啟動,就需要禁止掉這個服務,然後在需要的時候使用
/usr/sbin/apachectl start #/etc/init.d/apache2 start
在debian中使用 update-rc.d命令來實現
update-rc.d [-n] [-f] <basename> remove
update-rc.d [-n] <basename> defaults [NN | SS KK]
update-rc.d [-n] <basename> start|stop NN runlvl [runlvl] [...] .
update-rc.d [-n] <basename> disable|enable [S|2|3|4|5]
-n: not really
-f: force
-
刪除服務
update-rc.d -f apache2 remove # -f 為強制刪除
-
新增服務
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命令不僅適用Linux服務,編寫的指令碼同樣可以用這個命令設為開機自動執行
在debian6中使用update-rc.d會報錯,如下:
update-rc.d: using dependency based boot sequencing
可以使用 insserv
命令來代替 update-rc.d
insserv [<options>] [init_script|init_directory]
Available options:
-h, --help This help.
-r, --remove Remove the listed scripts from all runlevels.
-f, --force Ignore if a required service is missed.
-v, --verbose Provide information on what is being done.
-p <path>, --path <path> Path to replace /etc/init.d.
-o <path>, --override <path> Path to replace /etc/insserv/overrides.
-c <config>, --config <config> Path to config file.
-n, --dryrun Do not change the system, only talk about it.
-d, --default Use default runlevels a defined in the scripts
比如
insserv -r apache2
本文永久更新連結地址:http://www.linuxidc.com/Linux/2016-07/133054.htm
相關文章