update-rc.d 更新 Linux 系统启动项 命令 用法详解
探究 Ubuntu 下的 update-rc.d 命令:http://www.linuxdiyf.com/linux/13362.html
Update-rc.d && rc.local 管理 Ubuntu 的開機啟動:http://www.linuxdiyf.com/linux/1057.html
通過 update-rc.d 來管理 Ubuntu 系統的自動啟動程序:http://www.linuxdiyf.com/linux/1056.html
Ubuntu 系統 Update-rc.d 命令:http://www.linuxdiyf.com/linux/906.html
openSUSE 下開機自動運行腳本命令的方法:http://www.linuxdiyf.com/linux/1975.html
?
?
ssh 服務開機自動啟動
- 1、修改sshd_config文件,命令為:vi /etc/ssh/sshd_config
- 2、將 #PasswordAuthentication no 的注釋去掉,并且將 NO 修改為 YES
- 3、將 #PermitRootLogin yes 的注釋去掉?
- 4、啟動 SSH 服務,命令為:/etc/init.d/ssh start ?查看狀態:/etc/init.d/ssh status ?停止服務:/etc/init.d/ssh stop
? ? ?也可以使用systemctl命令:systemctl start ssh、systemctl status?ssh、systemctl stop ssh - 5、驗證SSH服務狀態,命令為:/etc/init.d/ssh status
- 6、添加開機自啟動 update-rc.d ssh enable 。關閉則為:update-rc.d ssh disabled 自啟動需要重啟生效
?
Ubuntu 或者 Debian系統中 update-rc.d 命令 是 用來更新系統啟動項的腳本。這些腳本的鏈接位于/etc/rcN.d/目錄,對應腳本位于/etc/init.d/目錄。在了解 update-rc.d命令之前,你需要知道的是有關Linux?系統主要啟動步驟,以及Ubuntu中運行級別的知識。
?
?
一、Linux 系統主要啟動步驟
?
?
? ? ? ? 即在Linux系統下,一個Services的啟動、停止以及重啟通常是通過/etc/init.d目錄下的腳本來控制的。然而,在啟動或改變運行級別時,是在/etc/rcX.d中來搜索腳本。其中X是運行級別的number。當你在Debian下安裝一個新的服務,比如Apache2,安裝完成后,默認情況下它會啟動,并在下一次重啟后自動啟動。但是如果你不是一直需要這個服務,只在需要的時候啟用它,你可以禁用它。直到你需要使用的時候,執行如下指令: /etc/init.d/apache2 start
要實現這個目的,你需要先在/etc/rcX.d目錄中刪除所有apache2的符號鏈接,但這個方法操作麻煩,且效率低下??梢允褂胾pdate-rc.d命令來實現這個功能。
?
1、刪除一個服務
如果你想手動的完全禁用Apache2服務,你需要刪除其中的所有在/etc/rcX.d中的單一鏈路。
但是如果使用update-rc.d,則非常簡單:
update-rc.d -f apache2 remove
參數 -f 是強制刪除符號鏈接,即使/etc/init.d/apache2仍然存在。?
Note:這個命令僅僅禁止該服務,直到該服務被升級。
如果你想在服務升級后仍然保持被禁用。應該執行如下的命令:
update-rc.d apache2 stop 80 0 1 2 3 4 5 6 .
?
2、增加一個服務
如果你想重新添加這個服務并讓它開機自動執行,你需要執行以下命令:
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服務,編寫的腳本同樣可以用這個命令設為開機自動運行
例子:
update-rc.d httpd start 20 2 3 4 5 . stop 20 0 1 6 .
解析:表示在2、3、4、5這五個運行級別中,由小到大,第20個開始運行ushare;在 0 1 6這3個運行級別中,第20個關閉apachectl。
這是合并起來的寫法,注意它有2個點號,效果等于下面方法:
update-rc.d httpd defaults
3:設置啟動和關閉順序為80,20,級別默認
update-rc.d <basename> defaults 80 20
?
二、運行級別
?
Ubuntu中的運行級別
- 0(關閉系統)
- 1(單用戶模式,只允許root用戶對系統進行維護。)
- 2 到 5(多用戶模式,其中3為字符界面,5為圖形界面。)
- 6(重啟系統)
切換運行級別
init [0123456Ss] 例如:init 0 命令關機; init 6 命令重新啟動啟動項管理工具
sudo install sysv-rc-conf //或者使用帶gui的工具bum sudo sysv-rc-conf?
?
三、update-rc.d命令詳解
從所有的運行級別中刪除指定啟動項:update-rc.d -f <basename> remove
按指定順序、在指定運行級別中啟動或關閉:update-rc.d <basename> start|stop <order> <runlevels>
實例:update-rc.d apachectl start 20 2 3 4 5 . stop 20 0 1 6 .
解析:表示在2、3、4、5這五個運行級別中,由小到大,第20個開始運行apachectl;
? ? ? 在 0 1 6 這3個運行級別中,第20個關閉apachectl。
?? ? ?這是合并起來的寫法,注意它有2個點號,
?? ? ?效果等于下面方法:update-rc.d apachectl defaults
A啟動后B才能啟動,B關閉后A才關閉:
update-rc.d A defaults 80 20
update-rc.d B defaults 90 10
啟動和關閉順序為90,級別默認:update-rc.d <basename> defaults 90
apache2、nginx、Redis 這些服務安裝之后,會隨開機啟動,當這些服務并不需要時,就存在cpu和內存的浪費。
利用 update-rc.d 命令 我們可以實現啟動項的管理。
?
添加啟動項:
sudo update-rc.d ? apache2 defaults ?
sudo update-rc.d ? nginx defaults ?
sudo update-rc.d ? redis_6379 defaults ?
刪除啟動項
sudo update-rc.d -f apache2 remove ?
sudo update-rc.d -f nginx remove ?
sudo update-rc.d -f redis_6379 remove ?
運行例子:
$ sudo update-rc.d -f redis_6379 remove ?
[sudo] password for user: ?
?Removing any system startup links for /etc/init.d/redis_6379 ... ?
? ?/etc/rc0.d/K20redis_6379 ?
? ?/etc/rc1.d/K20redis_6379 ?
? ?/etc/rc2.d/S20redis_6379 ?
? ?/etc/rc3.d/S20redis_6379 ?
? ?/etc/rc4.d/S20redis_6379 ?
? ?/etc/rc5.d/S20redis_6379 ?
? ?/etc/rc6.d/K20redis_6379 ?
查看/etc/rc*.d/ 目錄下,*20redis_6379 已經被刪除,反之會被添加。
?
?
兩種開機執行腳本的方法
?
很多應用程序、服務需要在機器啟動的時候自動執行,這里記錄兩種開機執行腳本的方法
?
1. 修改/etc/rc.local
在/etc/rc.local的exit 0語句之間添加啟動腳本。腳本必須具有可執行權限。
vi /etc/rc.local 文本編輯,輸入以下內容,存檔即可。 /etc/init.d/ssh start exit 0?
2. 用 update-rc.d 命令添加開機執行腳本
?
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 仍然存在。
?
流程:
創建要開機自動執行的腳本:/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 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。
?
?
?
總結
以上是生活随笔為你收集整理的update-rc.d 更新 Linux 系统启动项 命令 用法详解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CompletableFuture详解~
- 下一篇: Office 安装