日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

update-rc.d 更新 Linux 系统启动项 命令 用法详解

發布時間:2024/7/23 linux 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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 系統主要啟動步驟

?

  • 讀取 MBR 的信息,啟動 Boot Manager。
  • 加載系統內核,啟動 init 進程, init 進程是 Linux 的根進程,所有的系統進程都是它的子進程。
  • init 進程讀取 /etc/inittab 文件中信息,并進入預設的運行級別。通常 /etc/rcS.d/ 目錄下的啟動腳本首先被執行,然后是/etc/rcN.d/ 目錄。
  • 根據 /etc/rcS.d/ 文件夾中對應的腳本啟動 Xwindow 服務器 xorg,Xwindow 為 Linux 下的圖形用戶界面系統。
  • 啟動登錄管理器,等待用戶登錄。
  • ?

    ? ? ? ? 即在Linux系統下,一個Services的啟動、停止以及重啟通常是通過/etc/init.d目錄下的腳本來控制的。然而,在啟動或改變運行級別時,是在/etc/rcX.d中來搜索腳本。其中X是運行級別的number。當你在Debian下安裝一個新的服務,比如Apache2,安裝完成后,默認情況下它會啟動,并在下一次重啟后自動啟動。但是如果你不是一直需要這個服務,只在需要的時候啟用它,你可以禁用它。直到你需要使用的時候,執行如下指令: /etc/init.d/apache2 start
    要實現這個目的,你需要先在/etc/rcX.d目錄中刪除所有apache2的符號鏈接,但這個方法操作麻煩,且效率低下。可以使用update-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 系统启动项 命令 用法详解的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。