supervisor 使用

2017-07-04 14:33:22 +08:00
 yyy123456

有时,php 守护进程会自己停掉。 保险起见,安装 supervisord

当前系统:centos 6

yum install supervisor

启动命令: service supervisord start

但是先不要启动。

先写一个 php

<?php
while(1) {
  echo 1;echo "\n";
   sleep(1);
}

假设该 php 文件是 /var/www/html/public/temp/1.php 假设 linux 的 php 的 cli 命令文件是 /usr/local/php/bin/php

确保 /etc/supervisord.conf 文件最后

[include]
files = /etc/supervisord.d/*.ini

然后

vim /etc/supervisord.d/1.ini

(如果要监控不同的进程,多写几个 ini 即可,无需用组的方式,最简单)

[program:a1]
command = /usr/local/php/bin/php  /var/www/html/public/temp/1.php
directory = /var/www/html/public/temp
user = root
stdout_logfile = /tmp/11.log
redirect_stderr = true
autostart = true
autorestart = true

解释看最下方的参考链接。 然后, 启动 supervisord,注意根据配置,会自动启动 1.php

service supervisord start

然后,现在查看 /tmp/11.log 会发现里面的内容不停增加,是 php 在输出。

以下是一些可以在 shell 中使用的监控命令

supervisorctl status 查看所有进程状况,最经常使用
supervisorctl stop programxxx,停止某一个进程(programxxx),programxxx 为[program:chatdemon]里配置的值
supervisorctl start programxxx,启动某个进程
supervisorctl restart programxxx,重启某个进程
supervisorctl stop all,停止全部进程,注:start、restart、stop 都不会载入最新的配置文件。
supervisorctl reload,载入最新的配置文件,并按新的配置启动、管理所有进程。

现在测试 supervisor 的自动重启功能。

ps aux|grep 1.php
然后
kill -9 进程号

继续 ps aux|grep 1.php 发现又有了!

并通过不停增长的 /tmp/11.log 得到证实!

现在我想停止 1.php 了,方法

supervisorctl stop a1

现在我想启动 1.php 了,方法

supervisorctl start a1

真是太方便了!!

现在我要把 phpresque 的守护进程用其监控

(QUEUE=jobs3 REDIS_BACKEND=127.0.0.1:6380  php /var/www/worker3.php >> /tmp/1.log 2>&1 &)

添加 /etc/supervisord.d/2.ini

[program:a2]
command = QUEUE=jobs3 REDIS_BACKEND=127.0.0.1:6380  /usr/local/php/bin/php /var/www/worker3.php
directory = /var/www
user = root
stdout_logfile = /tmp/a2.log
redirect_stderr = true
autostart = true
autorestart = true

然后

supervisorctl reload

使用 参考:http://www.jb51.net/LINUXjishu/400050.html

1347 次点击
所在节点    问与答
1 条回复
lsido
2017-07-04 21:12:31 +08:00
supervisor 是很好用

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/372936

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX