CentOS7 可以使用 SystemD 來管理服務,以實現自動啟動服務的功能。
SystemD 即 System Daemon,是 Linux 下的一種 init 軟體,其開發目標是提供更優秀的框架來表示系統服務之間的依賴關係,並以此實現系統初始化時服務的並行啟動,同時達到降低 Shell 系統開銷的效果。
假設我們需要啟動的服務為:
# /usr/share/autostartup/foobar.sh
步驟 1. 創建 SystemD 管理服務所使用的.service 文件
/usr/share/autostartup/foobar.service
以下是測試的.service 文件,具體的編寫方式可以參考 SystemD 相關文檔。
[Unit]
Description=foobar
Documentation=http://www.doc.com/doc.html
After=network.target
[Service]
Type=simple
WorkingDirectory=/home/foobar
ExecStart=/usr/share/autostartup/foobar.sh
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=foobar
User=foobar
Group=foobar
Environment=
[Install]
WantedBy=multi-user.target
步驟 2. 將編寫好的.service 文件移動到 `/usr/lib/systemd/` 下的指定目錄,這裡我們需要隨系統啟動,所以移動到 `/usr/lib/systemd/system/` 下。
cp /usr/share/autostartup/foobar.service /usr/lib/systemd/system/foobar.service
步驟 3. 配置和啟動相應的服務
# 重新加載 systemd 的配置
systemctl daemon-reload
配置服務為開機啟動#
systemctl enable foobar.service
開啟服務#
systemctl start foobar.service
關閉服務#
systemctl stop foobar.service