linux怎么监听进程并在进程死掉的时候重新执行

发布于 2022-09-05 21:45:10 字数 356 浏览 18 评论 0

1.最近在做一个即时聊天项目,要用到workman(http://www.workerman.net/),启动的时候要在Linux中项目根目录执行“php start.php start -d”开启后台进程一直跑
2.但是不定时进程会死掉,需要重新启动
3.要怎么可以监听这个进程,在死掉的时候自动执行“php start.php start -d”
4.是要用到supervisor吗?是的话那应该怎么配置文件?这样可以吗?
[program:php]
command=/usr/local/php/bin/php start.php start -d

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(5

始于初秋 2022-09-12 21:45:10

现在的Linux操作系统基本上都用systemd管理服务了,这玩意本身就自带服务挂了自动重启功能。只需要配置一个on-failure属性即可。

如果你想把你的程序变成服务,建议抽点时间学学systemd,不会占用你太多时间。

尴尬癌患者 2022-09-12 21:45:10

workerman 里面执行代码不能exit函数,否则就会挂掉

随梦而飞# 2022-09-12 21:45:10

supervisor 挺好用的,也很方便,supervisor,给你一段,我自己服务器上一段配置,仅供参考:

[program:monitor-worker]
process_name=%(program_name)s_%(process_num)02d
command=/usr/bin/php /home/wwwroot/monitor/artisan queue:work --sleep=3 --tries=3 --daemon
autostart=true
autorestart=true
user=root
numprocs=8
redirect_stderr=true
stdout_logfile=/home/wwwlogs/monitor_worker.log

另外还有一些常用的命令

sudo supervisorctl start all 启动全部服务
sudo supervisorctl stop all 关闭全部服务
sudo supervisorctl restart all 重启全部服务
sudo supervisorctl status 查看服务状态
sudo supervisorctl -c /etc/supervisor/supervisord.conf 指定配置文件
sudo supervisorctl reread 重复读取配置
sudo supervisorctl update 更新配置
山有枢 2022-09-12 21:45:10

我使用supervisor 遇到过的问题是,进程挂了,重启也没用,提示的错误是端口被占用.已经kill了进程了,端口依然不能释放.

独享拥抱 2022-09-12 21:45:10

我以前看到的一篇文章写的比较好,分享给你
https://laravel-china.org/top...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文