去发现生活中的美好,记录生活中的点点滴滴

在linux中使用进程管理器supervisor

linux admin 250℃

Supervisor是一个C/S系统,它可以在类UNIX系统上控制系统进程,由python编写,提供了大量的功能来实现对进程的管理。
今天讲解如何安装使用supervisor。
1、由于supervisor是python写的,需要安装python环境,这里安装python带过;

2、安装easy_install:

wget https://files.pythonhosted.org/packages/1a/04/d6f1159feaccdfc508517dba1929eb93a2854de729fa68da9d5c6b48fa00/setuptools-39.2.0.zip
unzip setuptools-39.2.0.zip
cd setuptools-39.2.0
python setup.py install

3、安装pip:

wget https://files.pythonhosted.org/packages/ae/e8/2340d46ecadb1692a1e455f13f75e596d4eab3d11a57446f08259dee8f02/pip-10.0.1.tar.gz
tar zxvf pip-10.0.1.tar.gz
cd pip-10.0.1
python setup.py install

4、然后安装supervisor:

pip  install supervisor 或者 easy_install supervisor

需要卸载,执行:pip uninstall supervisor

5、查看版本

 supervisord --version

6、生成supervisor配置文件:

echo_supervisord_conf >/etc/supervisord.conf

7、更改配置文件:

vim /etc/supervisord.conf
将include里的files改为:
[include]
files = supervisord.d/*.ini
这里的ini就是supervisor要加载进程的配置文件
进入配置文件/etc/supervisord.d,新增或者编辑ini文件
[program:queue_sendEmailJob]
command=php artisan queue:work redis --queue=SendMail --tries
directory= /home/www/erp/
autorestart=true
autostart=true
startretries=3
startsecs=10
redirect_stderr=true
stdout_logfile= /home/www/erp/storage/logs/queue_sendEmail.log
stdout_logfile_maxbytes=50MB
stdout_logfile_backups = 10
user=nobody

8、启动supervisor并加载supervisor配置:

/usr/bin/supervisord -c /etc/supervisord.conf

或进入命令行
supervisorctl

9、查看进程是否启动:

ps -ef|grep  supervisor 

10、重启

如果是修改了/etc/supervisor.conf配置文件,则执行:
supervisorctl reload 

如果新增或者修改了ini文件,执行以下进行重启:
supervisorctl update
supervisorctl restart all
或指定新增项
supervisorctl update
supervisorctl start XXX

查看状态:

 supervisorctl status

11、设置开机启动:

ubuntu
ubuntu开机自启有多种方式,编辑/etc/rc.local文件:

vi /etc/rc.local

在exit 0 之前加入以下命令:

/usr/local/bin/supervisord

保存并退出。
最后修改rc.local权限:

chmod +x /etc/rc.local

centos
在/usr/lib/systemd/system/下,新建文件supervisord.service:

#supervisord.service

[Unit] 
Description=Supervisor daemon

[Service] 
Type=forking 
ExecStart=/usr/bin/supervisord -c /etc/supervisord.conf 
ExecStop=/usr/bin/supervisorctl shutdown 
ExecReload=/usr/bin/supervisorctl reload 
KillMode=process 
Restart=on-failure 
RestartSec=42s

[Install] 
WantedBy=multi-user.target

启动服务:

systemctl enable supervisord

验证一下是否为开机启动:

systemctl is-enabled supervisord

转载请注明:永盟博客 » 在linux中使用进程管理器supervisor

喜欢 (2)