Supervisor是Linux系统中常用的进程守护程序,如果队列进程意外关闭,它会自动重启启动队列进程 。
[Superviso 官网] http://supervisord.org/index.html
安装:
$ apt-get install supervisor
配置Supervisor
Supervisor配置文件通常存放在/etc/supervisor/conf.d
目录,在该目录中,可以创建多个配置文件指示Supervisor如何监视进程.
下面创建一个开启并监视laravel
或lumen
项目的队列queue:work
进程的laravel-nst-worker.conf
文件
$ cd /etc/supervisor/conf.d
$ vim laravel-nst-worker.conf
配置文件内容如下:
[program:laravel-nst-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/nst/artisan queue:work --tries=3
autostart=true
autorestart=true
user=www-data
numprocs=2
redirect_stderr=true
stdout_logfile=/root/laravel-nst-worker.log
command 指要运行的命令
numprocs 指令让Supervisor运行8个进程并监视它们
启动:
$ service supervisor restart
监测:
$ ps -aux |grep php
root 30916 0.0 3.2 378200 32848 ? Ss 14:59 0:00 php-fpm: master process (/etc/php/7.1/fpm/php-fpm.conf)
www-data 30918 0.0 2.0 381084 21108 ? S 14:59 0:00 php-fpm: pool www
www-data 30919 0.0 2.5 381364 25696 ? S 14:59 0:00 php-fpm: pool www
www-data 30920 0.0 1.9 381084 20312 ? S 14:59 0:00 php-fpm: pool www
www-data 30921 0.0 2.0 381148 20424 ? S 14:59 0:00 php-fpm: pool www
www-data 30981 0.0 1.9 381144 19892 ? S 15:00 0:00 php-fpm: pool www
www-data 31387 0.1 2.8 249072 29104 ? S 15:12 0:00 php /var/www/nst/artisan queue:work --tries=3
www-data 31388 0.1 2.8 249072 29104 ? S 15:12 0:00 php /var/www/nst/artisan queue:work --tries=3