小白可以用的-Linux后台进程管理利器:supervisor
1.前言:
Linux的后台进程运行有好几种方法:如nohup、screen等.但是,如果是一个服务程序,要可靠地在后台运行,就需要把它做成daemon,最好还能监控进程状态,在意外结束时能自动重启.
2.supervisor:
supervisor是用Python开发的一套通用的进程管理程序,能将一个普通的命令行进程变为后台daemon,并监控进程状态,异常退出时能自动重启.
3.使用:
(1).安装supervisor:
apt-get install supervisor
(2).supervisor安装完成后会生成三个执行程序:
- supervisord:守护进程服务(用于接收进程管理命令)
- supervisorctl:客户端(用于和守护进程通信,发送管理进程的指令)
- echo_supervisord_conf:生成初始配置文件程序
(3).使用Laravel队列,会用到php artisan queue:work命令来监听队列.可以给开发的应用程序单独编写一个配置文件,让supervisor来管理它.每个进程的配置文件都可以单独分拆,放在/etc/supervisor/conf.d/目录下,新增一个Supervisor的配置文件.以.conf作为扩展名,以下定义了一个lumen-queue的进程:
[program:lumen-queue]
process_name=%(program_name)s_%(process_num)02d
command=php artisan queue:work # 命令
autostart=true
autorestart=true
directory=/var/www/Service # 进程的当前目录
user=www-data # 进程运行的用户身份
numprocs=8 # 启动多少个进程来监听Laravel队列
redirect_stderr=true
stdout_logfile=/var/log/supervisor/laravel-queue.log
[program:lumen-queue]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/Service/artisan queue:work redis --daemon --sleep=3 --tries=3
autostart=true
autorestart=true
user=root
numprocs=5
redirect_stderr=true
stdout_logfile=/var/log/supervisor/laravel-queue.log