介绍
Systemd
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管理的进程是否启动。