gpt4 book ai didi

Supervisord 不启动被杀死的进程

转载 作者:行者123 更新时间:2023-12-04 10:43:03 25 4
gpt4 key购买 nike

我有 supervisord安装在我的 Ubuntu 10.04 上,它持续运行一个 Java 进程,并且应该在它以某种方式死亡或崩溃时修复(重新加载)进程。

在我的 htop我向那个 发送 SIGKILL、SIGTERM、SIGHUP、SIGSEGV 信号Java进程并观看 /etc/logs/supervisord.log文件,它说。

08:09:46,182 INFO success: myprogram entered RUNNING state,[...]
08:38:10,043 INFO exited: myprogram (exit status 0; expected)

08:38我用 SIGSEGV 终止进程。为什么它以代码 0 退出,为什么不退出 supervisord重新启动它吗?

我所有的 supervisord.conf关于本次具体方案如下:
[program:play-9000]
command=play run /var/www/myprogram/ --%%prod
stderr_logfile = /var/log/supervisord/myprogram-stderr.log
stdout_logfile = /var/log/supervisord/myprogram-stdout.log

当我启动 supervisord 时,流程工作得很好,但没有得到修复。

顺便说一句,如何将 supervisord 作为服务启动,以便在整个系统重新启动时自动启动?

最佳答案

尝试设置 autorestart=true .默认情况下,autorestart 设置为“unexpected”,这意味着它只会在进程以意外退出代码退出时重新启动。默认情况下,预期退出代码 0。

http://supervisord.org/configuration.html#program-x-section-settings

您可以使用 chkconfig 程序来确保主管在重新启动时启动。

$ sudo apt-get install chkconfig
$ chkconfig -l supervisor
supervisor 0:off 1:off 2:on 3:on 4:on 5:on 6:off

您可以看到,当我安装它时,它默认启用了运行级别 2-5。
$ man 7 runlevel

有关运行级别的更多信息。

关于Supervisord 不启动被杀死的进程,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7902731/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com