在 CentOS 7 中,系統(tǒng)服務(wù)的管理方式從傳統(tǒng)的 System V init 轉(zhuǎn)向了 systemd。systemd 提供了更強大的服務(wù)管理功能,包括服務(wù)自啟動、進程監(jiān)控、依賴關(guān)系管理等。本文將詳細介紹如何在 CentOS 7 中注冊一個自定義服務(wù),并實現(xiàn)其開機自啟動。
systemd 的服務(wù)配置文件稱為“單元文件”(Unit File),通常存儲在以下目錄中:
/etc/systemd/system//usr/lib/systemd/system/對于自定義服務(wù),建議將單元文件放在 /etc/systemd/system/ 目錄下,以避免系統(tǒng)更新時被覆蓋。
假設(shè)我們有一個需要自啟動的服務(wù),其啟動腳本路徑為 /usr/local/bin/myapp.sh。我們可以創(chuàng)建一個名為 myapp.service 的服務(wù)單元文件。
1. 使用文本編輯器創(chuàng)建文件:
`bash
sudo vim /etc/systemd/system/myapp.service
`
2. 編寫服務(wù)配置內(nèi)容:
以下是一個基本的服務(wù)單元文件示例:
`ini
[Unit]
Description=My Custom Application Service
After=network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/myapp.sh start
ExecStop=/usr/local/bin/myapp.sh stop
Restart=on-failure
User=root
[Install]
WantedBy=multi-user.target
`
[Unit] 部分:Description:服務(wù)描述信息。After:指定服務(wù)在哪些目標(biāo)之后啟動,例如網(wǎng)絡(luò)就緒后。[Service] 部分:Type:服務(wù)類型,simple 表示主進程啟動后即視為服務(wù)啟動。ExecStart:啟動服務(wù)的命令。ExecStop:停止服務(wù)的命令(可選)。Restart:定義服務(wù)失敗時的重啟策略,on-failure 表示僅在非正常退出時重啟。User:運行服務(wù)的用戶。[Install] 部分:WantedBy:指定服務(wù)所屬的目標(biāo),multi-user.target 表示多用戶命令行模式。1. 重新加載 systemd 配置:
創(chuàng)建或修改服務(wù)單元文件后,需要讓 systemd 重新加載配置。
`bash
sudo systemctl daemon-reload
`
2. 啟用服務(wù)自啟動:
使用 systemctl enable 命令設(shè)置服務(wù)開機自啟動。
`bash
sudo systemctl enable myapp.service
`
成功后會輸出:Created symlink from /etc/systemd/system/multi-user.target.wants/myapp.service to /etc/systemd/system/myapp.service.
3. 驗證自啟動設(shè)置:
檢查服務(wù)是否已啟用:
`bash
sudo systemctl is-enabled myapp.service
`
如果返回 enabled,則表示設(shè)置成功。
- 啟動服務(wù):
`bash
sudo systemctl start myapp.service
`
- 停止服務(wù):
`bash
sudo systemctl stop myapp.service
`
- 重啟服務(wù):
`bash
sudo systemctl restart myapp.service
`
- 查看服務(wù)狀態(tài):
`bash
sudo systemctl status myapp.service
`
- 禁用服務(wù)自啟動:
`bash
sudo systemctl disable myapp.service
`
如果服務(wù)啟動失敗,可以使用以下命令查看詳細日志:`bash
sudo journalctl -u myapp.service -f`-u 指定服務(wù)單元,-f 實時跟蹤日志輸出。
1. 腳本權(quán)限:確保啟動腳本具有可執(zhí)行權(quán)限:
`bash
sudo chmod +x /usr/local/bin/myapp.sh
`
[Unit] 部分使用 Requires、Wants 等指令設(shè)置服務(wù)依賴。[Service] 部分使用 LimitCPU、LimitMEMORY 等指令限制服務(wù)資源使用。通過以上步驟,您可以在 CentOS 7 中輕松注冊系統(tǒng)服務(wù)并實現(xiàn)開機自啟動。systemd 的靈活配置使得服務(wù)管理更加高效可靠,適用于各種生產(chǎn)環(huán)境。