Linux下使用Supervisor来管理客服系统或者知识库的守护进程

一般情况下,我们使用golang开发的服务,或者其他语言监听端口的服务,都没有守护进程的功能

那么我们就可以使用Supervisor来对进程进行管理


Supervisor是一种常用的进程管理工具,可以帮助你管理Linux系统中的进程,确保它们在后台一直运行。使用Supervisor可以实现进程的自动重启、监控进程状态、限制进程资源等功能,非常适用于需要长时间运行的服务程序。

以下是在Linux下使用Supervisor的一些基本步骤:

安装Supervisor

在Linux系统中,你可以使用包管理工具来安装Supervisor,例如在Ubuntu系统中,可以使用以下命令进行安装:

apt-get install supervisor

配置Supervisor

Supervisor的配置文件通常位于/etc/supervisor/conf.d/目录下,你可以在该目录下创建一个以.conf为后缀的配置文件,例如myprogram.conf,然后在该文件中添加要管理的进程的配置信息。

以下是一个示例配置文件的内容:

[program:myprogram]
command=/usr/bin/python /path/to/myprogram.py
directory=/path/to/working/directory
user=myuser
autostart=true
autorestart=true
startretries=3
redirect_stderr=true
stdout_logfile=/var/log/myprogram.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups=10

该配置文件定义了一个名为myprogram的进程

该进程的命令为/usr/bin/python /path/to/myprogram.py

进程工作目录为/path/to/working/directory

运行该进程的用户为myuser

开启自动启动和自动重启功能,最多重启3次

将标准输出重定向到/var/log/myprogram.log文件中

最大文件大小为50MB

最多保留10个备份日志文件。

你可以根据自己的需要修改相应的配置信息。

启动Supervisor

配置完成后,你可以使用以下命令启动Supervisor服务:

service supervisor start

启动Supervisor后,它会自动加载配置文件并启动相应的进程。你可以使用以下命令来检查Supervisor服务状态:

service supervisor status

使用Supervisor管理进程

使用Supervisor管理进程非常简单,你可以使用以下命令对进程进行启动、停止、重启、查看状态等操作:

启动进程:

sudo supervisorctl start myprogram


停止进程:

sudo supervisorctl stop myprogram

重启进程:

sudo supervisorctl restart myprogram

查看进程状态:

supervisorctl status


如果配置完成后,使用supervisorctl start myprogram ,报错找不到进程,


那么可以尝试下面这条更新命令

supervisorctl update

如果配置正确会输出类似下面这样

myprogram : added process group

然后查看下进程状态

supervisorctl status

会看到

supervisor> status

myprogram                          RUNNING   pid 12345, uptime 1 day, 2:34:56