在 centos 7 上安装并配置 supervisord 以 运行 Laravel 永久队列
Install and configure supervisord on centos 7 to run Laravel queues permanently
我想在我的项目中使用 Laravel 队列系统,我想 运行 php artisan queue:work 永久在服务器的后台,我做了一些关于这个的搜索,我发现了一个命令行,即使在从 ssh 终端退出后也可以 运行 它,但在某些情况下它可能会关闭并且可能给我带来可怕的问题。所以过了一会儿我发现有一个名为 Supervisord 的包即使在服务器重新启动后也可以重新启动命令。所以想请教大佬帮忙从0到100一步步在centos 7上如何安装和配置Supervisord,然后设置队列命令行。非常感谢..
这里是如何在 centos 7 上安装和配置 supervisord 以 运行 Laravel 永久队列:
easy_install supervisor
yum install supervisor
vim /etc/supervisord.conf
编辑段程序如下:
[program:laravel-worker]
command=php /path/to/app.com/artisan queue:work
process_name=%(program_name)s_%(process_num)02d
numprocs=8
priority=999
autostart=true
autorestart=true
startsecs=1
startretries=3
user=apache
redirect_stderr=true
stdout_logfile=/path/to/log/worker.log
systemctl enable supervisord
在开始时自动运行
systemctl restart supervisord
重启服务
希望这对某些人有用,这是我除了@Abdu 的回答之外还经历过的让 CentOS 7 正常工作的过程。
1.安装主管
easy_install supervisor
* 如果没有安装,运行 yum install -y python-setuptools
然后 easy_install supervisor
2。准备工作
要获得理想的设置 运行ning,您应该 运行 以下...
# create directory for supervisor logs
mkdir /var/log/supervisor
# create directory for supervisor configs
mkdir -p /etc/supervisor/conf.d
# create config directory for supervisor
cat <<EOT >> /etc/supervisor/supervisord.conf
; supervisor config file
[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP)
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket
[include]
files = /etc/supervisor/conf.d/*.conf
EOT
# create systemctl service script
cat <<EOT >> /lib/systemd/system/supervisord.service
[Unit]
Description=Supervisor process control system for UNIX
Documentation=http://supervisord.org
After=network.target
[Service]
ExecStart=/usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown
ExecReload=/usr/bin/supervisorctl -c /etc/supervisor/supervisord.conf $OPTIONS reload
KillMode=process
Restart=on-failure
RestartSec=50s
[Install]
WantedBy=multi-user.target
EOT
完成此操作后,您现在应该能够使用 systemctl 启动和停止 supervisor。要启动 systemctl,运行 systemctl start supervisord
。要查看主管的状态,运行 systemctl status supervisord
.
您可以在 /etc/supervisor/conf.d
下创建任意数量的自定义配置
3。在系统启动时启用
您还应该通过 运行ning
在启动时启用 supervisord
systemctl enable supervisord
在我的 Bluehost 帐户上 systemctl
不是 运行ning,而是 chkserv
用于监视和重新启动进程,因此这里的两个答案对我来说并不完全有效。
此外,我 运行 遇到 easy_install supervisor
的错误,因为它试图安装新的 4.x.x 版本,这需要 Python > 2.6
,而 2.6 是准确的Python 运行ning 在我的机器上的版本。
以下是对我有用的方法:
yum install -y python-setuptools
easy_install supervisor==3.4.0
nano /etc/supervisord.conf
并添加
[supervisord]
nodaemon=true
[include]
files = /etc/supervisor/conf.d/*.conf
[program:laravel-worker]
command=php artisan queue:work --tries=1
autostart=true
autorestart=true
stderr_logfile=/var/log/queue.err.log
stdout_logfile=/var/log/queue.out.log
nano /etc/chkserv.d/chkservd.conf
,添加行supervisord:1
,然后保存文件
touch /etc/chkserv.d/supervisord
创建 chkservd 配置文件
nano /etc/chkserv.d/supervisord
,添加行service[supervisord]=x,x,x,service supervisord restart,supervisord,root
,然后保存文件
supervisord
现在将显示在 Service Manager
下的 WHM 中,chkservd
将启动它并确保它保持 运行ning,但是要手动启动它,只需 运行 supervisord
有关向 chkservd
、click here 添加服务的更多信息。
我想在我的项目中使用 Laravel 队列系统,我想 运行 php artisan queue:work 永久在服务器的后台,我做了一些关于这个的搜索,我发现了一个命令行,即使在从 ssh 终端退出后也可以 运行 它,但在某些情况下它可能会关闭并且可能给我带来可怕的问题。所以过了一会儿我发现有一个名为 Supervisord 的包即使在服务器重新启动后也可以重新启动命令。所以想请教大佬帮忙从0到100一步步在centos 7上如何安装和配置Supervisord,然后设置队列命令行。非常感谢..
这里是如何在 centos 7 上安装和配置 supervisord 以 运行 Laravel 永久队列:
easy_install supervisor
yum install supervisor
vim /etc/supervisord.conf
编辑段程序如下:
[program:laravel-worker] command=php /path/to/app.com/artisan queue:work process_name=%(program_name)s_%(process_num)02d numprocs=8 priority=999 autostart=true autorestart=true startsecs=1 startretries=3 user=apache redirect_stderr=true stdout_logfile=/path/to/log/worker.log
systemctl enable supervisord
在开始时自动运行systemctl restart supervisord
重启服务
希望这对某些人有用,这是我除了@Abdu 的回答之外还经历过的让 CentOS 7 正常工作的过程。
1.安装主管
easy_install supervisor
* 如果没有安装,运行 yum install -y python-setuptools
然后 easy_install supervisor
2。准备工作
要获得理想的设置 运行ning,您应该 运行 以下...
# create directory for supervisor logs
mkdir /var/log/supervisor
# create directory for supervisor configs
mkdir -p /etc/supervisor/conf.d
# create config directory for supervisor
cat <<EOT >> /etc/supervisor/supervisord.conf
; supervisor config file
[supervisord]
logfile=/var/log/supervisor/supervisord.log ; (main log file;default $CWD/supervisord.log)
pidfile=/var/run/supervisord.pid ; (supervisord pidfile;default supervisord.pid)
childlogdir=/var/log/supervisor ; ('AUTO' child log dir, default $TEMP)
[rpcinterface:supervisor]
supervisor.rpcinterface_factory = supervisor.rpcinterface:make_main_rpcinterface
[supervisorctl]
serverurl=unix:///var/run/supervisor.sock ; use a unix:// URL for a unix socket
[include]
files = /etc/supervisor/conf.d/*.conf
EOT
# create systemctl service script
cat <<EOT >> /lib/systemd/system/supervisord.service
[Unit]
Description=Supervisor process control system for UNIX
Documentation=http://supervisord.org
After=network.target
[Service]
ExecStart=/usr/bin/supervisord -n -c /etc/supervisor/supervisord.conf
ExecStop=/usr/bin/supervisorctl $OPTIONS shutdown
ExecReload=/usr/bin/supervisorctl -c /etc/supervisor/supervisord.conf $OPTIONS reload
KillMode=process
Restart=on-failure
RestartSec=50s
[Install]
WantedBy=multi-user.target
EOT
完成此操作后,您现在应该能够使用 systemctl 启动和停止 supervisor。要启动 systemctl,运行 systemctl start supervisord
。要查看主管的状态,运行 systemctl status supervisord
.
您可以在 /etc/supervisor/conf.d
3。在系统启动时启用
您还应该通过 运行ning
在启动时启用 supervisordsystemctl enable supervisord
在我的 Bluehost 帐户上 systemctl
不是 运行ning,而是 chkserv
用于监视和重新启动进程,因此这里的两个答案对我来说并不完全有效。
此外,我 运行 遇到 easy_install supervisor
的错误,因为它试图安装新的 4.x.x 版本,这需要 Python > 2.6
,而 2.6 是准确的Python 运行ning 在我的机器上的版本。
以下是对我有用的方法:
yum install -y python-setuptools
easy_install supervisor==3.4.0
nano /etc/supervisord.conf
并添加
[supervisord]
nodaemon=true
[include]
files = /etc/supervisor/conf.d/*.conf
[program:laravel-worker]
command=php artisan queue:work --tries=1
autostart=true
autorestart=true
stderr_logfile=/var/log/queue.err.log
stdout_logfile=/var/log/queue.out.log
nano /etc/chkserv.d/chkservd.conf
,添加行supervisord:1
,然后保存文件touch /etc/chkserv.d/supervisord
创建 chkservd 配置文件nano /etc/chkserv.d/supervisord
,添加行service[supervisord]=x,x,x,service supervisord restart,supervisord,root
,然后保存文件supervisord
现在将显示在Service Manager
下的 WHM 中,chkservd
将启动它并确保它保持 运行ning,但是要手动启动它,只需 运行supervisord
有关向 chkservd
、click here 添加服务的更多信息。