我正在嘗試使用 supervisord呼叫這個 shell 腳本。supervisorctl 在嘗試啟動行程時報告以下錯誤:
kerby-kdc FATAL 退出太快(行程日志可能有詳細資訊)
我檢查了 kerby 日志,但沒有報告錯誤。
我配置的程序/etc/supervisor/supervisord.conf如下:
[program:kerby-kdc]
command=bash -c "/home/test/kerberos/server/kdc-dist/bin/start-kdc.sh" /home/test/kerberos/server/kdc-dist/conf /home/test/kerberos/server/kdc-dist/runtime
user=test
environment=JAVA_HOME="/usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin"
autostart=true
autorestart=true
startsecs=10
startretries=3
這個配置有問題嗎?
uj5u.com熱心網友回復:
OP 中參考的 shell 腳本包含以下內容:
java $DEBUG \
-classpath target/lib/*:. \
-DKERBY_LOGFILE=kdc \
org.apache.kerby.kerberos.kdc.KerbyKdcServer -start $args
請注意,類路徑是相對的。當 supervisord 嘗試執行 java 命令時,JVM 將無法找到 class org.apache.kerby.kerberos.kdc.KerbyKdcServer。那是因為target/lib相對于 supervisord 執行路徑不存在。
類路徑需要是絕對的,或者需要將 CLASSPATH 環境變數添加到 supervisord.conf 檔案中。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/333148.html
上一篇:在shell腳本中呼叫鏈碼函式
