首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

Ubuntu 配置開機啟動服務:rcconf 圖形化工具與 update-rc.d 命令行詳解

     編輯:PHP 相關知識

Ubuntu 服務管理機制

Ubuntu 使用 SysV 風格的 /etc/init.d/ 腳本 + /etc/rc*.d/ 符號鏈接管理運行級別。不同於 CentOS 的 ntsysv,Ubuntu 提供 rcconf(TUI)和 update-rc.d(CLI)兩種原生工具。

方法一:rcconf 終端圖形化界面(推薦新手)

安裝

sudo apt-get install rcconf

啟動

sudo rcconf

界面操作:

  • ↑/↓ 選擇服務,Space 切換啟用/禁用(* 表示啟用)。
  • Tab 切換到 “Ok” 按鈕,Enter 確認保存。

常見問題與解決

問題原因解決
界面顯示亂碼SSH 客戶端編碼非 UTF-8PuTTY: Window → Translation → UTF-8;Terminal 設置 locale
選項修改後重進未生效權限不足未寫入配置必須用 sudo rcconf 執行
配置已變但開機不生效/var/lib/rcconf/services 文件權限錯誤sudo chmod 755 /var/lib/rcconf/services 後重新 sudo rcconf

方法二:update-rc.d 命令行(腳本化、自動化首選)

語法

update-rc.d    [options]

常用動作

動作效果示例
defaults按默認優先級添加啟動/關閉鏈接(S20/K80)sudo update-rc.d apache2 defaults
enable啟用服務(創建 S 鏈接)sudo update-rc.d mysql enable
disable禁用服務(移除所有 S/K 鏈接)sudo update-rc.d bluetooth disable
remove完全移除所有運行級別鏈接sudo update-rc.d old-service remove
start/stop指定具體運行級別與優先級sudo update-rc.d apache2 start 20 2 3 4 5 . stop 80 0 1 6 .

實戰示例

# 1. 禁用 Avahi 零配置服務(桌面環境常不用)
sudo update-rc.d avahi-daemon disable

# 2. 為自定義腳本註冊開機啟動
# 腳本放 /etc/init.d/my-service,需符合 LSB 標準(start/stop/status)
sudo chmod +x /etc/init.d/my-service
sudo update-rc.d my-service defaults

# 3. 調整啟動順序(優先級 00-99,數字小先啟動)
sudo update-rc.d my-service start 30 2 3 4 5 . stop 70 0 1 6 .

# 4. 查看當前鏈接狀態
ls -l /etc/rc*.d/ | grep my-service

Systemd 時代的新命令(Ubuntu 15.04+)

現代 Ubuntu 使用 systemd,推薦使用 systemctl:

SysV 命令Systemd 命令
update-rc.d apache2 defaultssystemctl enable apache2
update-rc.d apache2 disablesystemctl disable apache2
service apache2 startsystemctl start apache2
service apache2 statussystemctl status apache2
update-rc.d my-script defaults創建 /etc/systemd/system/my-script.service 單元文件

自定義 Systemd 服務單元模板

# /etc/systemd/system/my-app.service
[Unit]
Description=My Custom Application
After=network.target mysql.service

[Service]
Type=simple
User=www-data
WorkingDirectory=/var/www/my-app
ExecStart=/usr/bin/php artisan serve --host=0.0.0.0 --port=8000
Restart=on-failure
RestartSec=5

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload
sudo systemctl enable my-app
sudo systemctl start my-app

總結建議

  • Ubuntu 14.04 及之前:用 rcconf 圖形化管理,update-rc.d 腳本自動化。
  • Ubuntu 15.04+:全面轉向 systemctl,編寫 .service 單元文件,功能更強(依賴、重啟策略、日誌整合、沙箱隔離)。
  • 避免手動操作 /etc/rc*.d/ 符號鏈接,極易出錯且難維護。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved