本文采用的是supvisor来维持启动项
- 安装supvisor
apt-get install supervisor
- supervisor 文件的配置
文件路径是:/etc/supervisord.conf
创建文件
supervisord.service
# dservice 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/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl shutdown
ExecReload=/usr/bin/supervisorctl reload
KillMode=process
Restart=on-failure
RestartSec=42s
[Install]
WantedBy=multi-user.target
将文件放到/usr/lib/systemd/system/路径下。
- 启动命令
systemctl enable supervisord
- 开机验证是否成功
systemctl is-enabled supervisord
- 启动自己的conf文件
文件格式
[program:exchange]
command=/usr/bin/python3 /exchange/run_exchange.py
process_name=%(program_name)s ;进程名字(这是默认的写法)
numprocs=1 ;启动几个该进程
autostart=true ;在supervisord启动时也自动启动
autorestart=true ;程序异常退出后自动重启
directory=/exchange/ ;程序的启动目录
stderr_logfile=/var/log/exchange.err.log
stdout_logfile=/var/log/exchange.out.log
将文件放到/etc/supervisor/conf.d/目录下
- supervisor相关指令
supervisord: 初始启动Supervisord,启动、管理配置中设置的进程;
supervisorctl stop(start, restart) xxx,停止(启动,重启)某一个进程(xxx);
supervisorctl reread: 只载入最新的配置文件, 并不重启任何进程;
supervisorctl reload: 载入最新的配置文件,停止原来的所有进程并按新的配置启动管理所有进程;
supervisorctl update: 根据最新的配置文件,启动新配置或有改动的进程,配置没有改动的进程不会受影响而重启;