简介
我们在服务器上后台运行程序时,经常会使用nohup command &
将程序运行在后台,这样我们关闭终端后程序还在运行,但是一旦程序挂掉以后程序将直接退出,影响业务。supervisor可以将上述的命令行程序转化为守护进程,并在程序异常退出时重启进程。
安装方法
sudo apt install supervisor
使用方法(以ubuntu20.04为例)
我们可以在/etc/supervisor
找到supervisord.conf
,查看文件内容:
[include]
files = /etc/supervisor/conf.d/*.conf
即表示supervisor包括了这个目录下的所有配置文件。
使用方法
- 创建myapp.conf,(根据实际情况修改)内容为:
[program:myapp] ;程序名称
user=ubuntu ;执行程序的用户
command=/path/to/myapp ;执行的命令
directory=/path/to/; 命令执行的目录
stopsignal=TERM ;重启时发送的信号
autostart=true
autorestart=true ;是否自动重启
stdout_logfile=/var/log/myapp.log ;标准输出日志位置
stderr_logfile=/var/log/myapp.log ;标准错误日志位置
- 创建好配置文件后更新一下
sudo supervisorctl update
- 常用命令
supervisorctl status # 查看所有任务状态
supervisorctl shutdown # 关闭所有任务
supervisorctl start myapp # 启动任务
supervisorctl stop myapp # 关闭任务
supervisorctl reload # 重启supervisor
参考:https://www.liwenzhou.com/posts/Go/deploy/