1Panel-dev / 1Panel

🔥🔥🔥 Web-based linux server management control panel. / 现代化、开源的 Linux 服务器运维管理面板。
https://www.1panel.cn
GNU General Public License v3.0
21.99k stars 2k forks source link

[QUESTION]关于进程守护:supervisor管理/停止,无法同步停止容器内进程 #2683

Open xhwsd opened 11 months ago

xhwsd commented 11 months ago

请描述您的问题

使用场景

进程守护启动Laravel队列进程常驻进行任务消费

问题描述

目前supervisor安装在宿主,而Laravel在容器内运行。 尝试使用docker exec 容器名 php /www/sites/网站名/index/artisan queue:work命令启动并守护。 发现supervisor管理/停止时,其实际PHP队列进程还在执行(通过:进程管理/搜索PHP/详细/启动命令)

需求描述

如何实现supervisor管理/停止时,PHP队列进程也同步结束

为了实现Laravel项目正常运行,用到计划任务的调度和进程守护的队列。

wanghe-fit2cloud commented 11 months ago

感谢反馈。 目前使用进程守护功能还不能实现上述需求,但可以通过 容器 页面提供的 终端 功能来实现关闭进程的功能。

接下来,我们也会讨论具体方案,看如何来支持上述需求。

xhwsd commented 11 months ago

哎,进程守护无法实现容器内的进程守护,那类似需要常驻进程守护的PHP项目(Laravel、ThinkPHP等)也玩不转了了~

xhwsd commented 10 months ago

请问何时完善进程守护PHP项目,一天不完善一天无法运行完美运行Laravel、ThinkPHP等项目

wanghe-fit2cloud commented 10 months ago

请问何时完善进程守护PHP项目,一天不完善一天无法运行完美运行Laravel、ThinkPHP等项目

1Panel 是容器化运行的 PHP 网站,而容器又是单进程模型,所以还是上面的建议,需要借助 容器 - 终端 功能来实现。

wanghe-fit2cloud commented 10 months ago

也可以使用 1Panel 的定时任务来执行,如图: image

xhwsd commented 10 months ago

哎,这样说:进程程守 管理的 停止、重启 后的 php 进程怎么处理,就不关了,这明显有问题影响业务 QQ截图20231120144432

xhwsd commented 10 months ago

不解决进程程守问题,类似 Laravel、ThinkPHP 等需要常驻进程(队列)的PHP项目都无法在 1Panel 运行

zhengkunwang223 commented 10 months ago

不解决进程程守问题,类似 Laravel、ThinkPHP 等需要常驻进程(队列)的PHP项目都无法在 1Panel 运行

经过讨论,后续我们考虑在 PHP 容器中增加 supervisor

jevantang commented 10 months ago

我也有这个需求。

我开发一个开源程序 Fresns,基于 Laravel 框架,准备首推这个面板的,昨晚玩了一下,就差一个进程守护没办法解决了。

xhwsd commented 10 months ago

哎,说来话长,孩子没娘!我前段时间都已经把1Panel服务器环境搭建好,都迁到1Panel,然后发现队列等的常驻进程守护不了,乖乖的迁回宝塔

jevantang commented 10 months ago

哎,说来话长,孩子没娘!我前段时间都已经把1Panel服务器环境搭建好,都迁到1Panel,然后发现队列等的常驻进程守护不了,乖乖的迁回宝塔

我和你一样。我昨晚把生产环境都迁移过来了,配置完之后才知道没进程守护。

我现在是人工每隔几个小时就手动在终端里执行一下 php artisan queue:work

又要夜里再迁移一下环境了。

pmb2020 commented 8 months ago

这个问题对于laravel、thinkphp用户很急切,希望能尽快有一个好的解决方案。哎

muzidudu commented 7 months ago

停止命令可以先判断如果是docker exec ,先搜索进程pid然后进入容器kill进程呢

是否可以参考[参考链接](https://m.php.cn/faq/519988.html?share_token=BAF0AF8D-F4F9-494D-B59C-A187D0C83EDD&tt_from=copy_link&utm_campaign=client_share&utm_medium=toutiao_ios&utm_source=copy_link docker进程无法停止怎么办-Docker-PHP中文网 - 今日头条)

StringKe commented 6 days ago

laravel 可以通过定时任务 php artisan queue:work --once 的方式临时支持一下,不够优雅