配置 Supervisor
Supervisor 的配置文件通常位于 /etc/supervisor/conf.d
目录下。在该目录中,能够创立任意数量的配置文件,用来配置 supervisor 如何监控过程。例如,创立一个 laravel-worker.conf
文件启动和监控 queue:work
过程:
# [program:x] 配置:# 格局为“program”单词,加一个英文冒号,加自定义的程序名称。如 `[program:foo]`,上下文中可应用表达式 %(program_name)s 援用程序名称。[program:laravel-worker]
# 指定过程的命名规定:foo_00,foo_01...
process_name=%(program_name)s_%(process_num)02d
# command 必须。程序启动后执行的命令,能够是相对命令,也能够是绝对命令(在环境 $PATH 中搜寻可执行文件)。受控的程序自身不应该是守护程序。command=php /home/forge/app.com/artisan queue:work sqs --sleep=3 --tries=3
# Supervisor 启动时主动启动该程序
autostart=true
# 指定过程挂掉时 Supervisor 主动重启过程
autorestart=true
# 指定运行过程应用的用户,须要 Supervisor 以 root 用户运行。应用 setuid 切换用户,不会启动 shell 程序和扭转环境变量
user=forge
# 运行和监控的过程数量,过程位于 laravel-worker 组内,指定该值需同时设置 process_name 蕴含 %(process_num)s
numprocs=8
# 将 stderr 谬误输入重定向到 stdout 规范输入
redirect_stderr=true
# 将过程的 stdout 规范输入写入文件中,设为 NONE 不会创立任何日志文件。stdout_logfile=/home/forge/app.com/worker.log
启动 Supervisor
配置文件创立结束后,能够应用如下命令更新 Supervisor 配置并启动过程:
# 重载守护过程的配置文件
sudo supervisorctl reread
# 从新加载配置并依据须要增加 / 删除,并将重新启动受影响的程序
sudo supervisorctl update
# 启动指定的程序组
sudo supervisorctl start laravel-worker:*
参考:http://supervisord.org/config…