Unix
supervisord - 自動終止其衍生的程序
我是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 文件)時,它按預期工作。