Unix

supervisord - 自動終止其衍生的程序

  • June 13, 2017

我是Supervisord的新蜜蜂。我在 Ubuntu 上。

我的問題是,我有一個腳本來使用“exec java -cp …..”作為腳本中的唯一行來生成 java 程序。這個特定的java程序是一個無限執行的非守護程序(因為“驅動程序”總是啟動並執行,如果我直接呼叫啟動腳本,我還檢查了它是否按預期工作)。

但我已將 supervisord.conf 文件配置為

[program:mydriver]
command=/home/subho/Workshop/start.sh
directory=/home/subho/Workshop
startsecs=5
stdout_logfile=/home/subho/Workshop/Logs/out.log
stderr_logfile=/home/subho/Workshop/Sink/Logs/err.log

但是當我開始 ./supervisord -c <path to my conf file>

該程序正常啟動,一旦進入執行狀態,它會自動被主管本身殺死。下面是日誌,

2017-06-03 18:58:05,286 CRIT Supervisor running as root (no user in config file)
2017-06-03 18:58:05,297 INFO RPC interface 'supervisor' initialized
2017-06-03 18:58:05,297 CRIT Server 'unix_http_server' running without any 
HTTP authentication checking
2017-06-03 18:58:05,297 INFO daemonizing the supervisord process
2017-06-03 18:58:05,298 INFO supervisord started with pid 19698
2017-06-03 18:58:06,300 INFO spawned: 'mydriver' with pid 19699
2017-06-03 18:58:11,671 INFO success: mydriver entered RUNNING state, process has stayed up for > than 5 seconds (startsecs)
2017-06-03 18:58:27,439 INFO waiting for mydriver to die
2017-06-03 18:58:27,465 INFO stopped: mydriver (exit status 143)

為什麼會這樣?當我啟動 tomcat 或任何其他程序時也會發生同樣的情況。

我不知道這是否是正確的原因。但這解決了我的問題。

我將 conf 文件保存在自定義路徑下。supervisor conf 文件的預設路徑在 /etc/supervisor/ 下。當我使用預設的 conf 文件(並在 /etc/supervisor/conf.d/myconf.conf 下添加我的自定義 conf 文件)時,它按預期工作。

引用自:https://serverfault.com/questions/853803