Systemd 是 Linux 系統工具,用來啟動守護進程,已成為大多數發行版的標准配置。可以通過 systemctl --version 命令來查看使用的版本
常用命令
# 立即啟動一個服務 $ sudo systemctl start apache.service # 立即停止一個服務 $ sudo systemctl stop apache.service # 重啟一個服務 $ sudo systemctl restart apache.service # 殺死一個服務的所有子進程 $ sudo systemctl kill apache.service # 重新加載一個服務的配置文件 $ sudo systemctl reload apache.service # 重載所有修改過的配置文件 $ sudo systemctl daemon-reload # 顯示某個 Unit 的所有底層參數 $ systemctl show httpd.service
Supervisor
Supervisor是是一個用python寫的進程管理程序,不僅僅可以用來管理進程,還可以用來做開機啟動。它有但不限於以下一些功能:
重啟機器后,能夠自啟動。
平時有個方便的進程查看方式。
能夠有個方便的方式重啟進程。
配置方法這里就不做記錄了,不過要注意,默認的配置文件里面會把一些supervisor生成的重要文件放到 /tmp 目錄下面,操作系統可能會把這些文件進行刪除,導致 supervisorctl 命令由於找不到這些以前放到 /tmp 的文件而操作不了已經啟動的supervisor進程。
方法
為了能夠在機器啟動之后自動啟動supervisor,需要把supervisor進程配置進systemd,
步驟:
- 進入目錄
/usr/lib/systemd/system/,增加文件supervisord.service,來使得機器啟動的時候啟動supervisor,文件內容
# supervisord service for systemd (CentOS 7.0+) # by ET-CS (https://github.com/ET-CS) [Unit] Description=Supervisor daemon [Service] Type=forking ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown ExecReload=/usr/bin/supervisorctl $OPTIONS reload KillMode=process Restart=on-failure RestartSec=42s [Install] WantedBy=multi-user.target
-
激活開機啟動命令
systemctl enable supervisord.service -
啟動supervisor進程
systemctl start supervisord.service -
關閉supervisor進程
systemctl stop supervisord.service -
如果修改了supervisor.service文件,可以通過reload命令來重新加載配置文件
systemctl reload supervisord.service
檢查
可以通過 ps 命令可以查看supervisor 是否啟動,並且可以查看supervisor管理的進程是否啟動。
