我有一个java应用程序,我设法手动执行。应用程序通常会打开多个端口用于本地通信 (7180 => 7183)。端口 7182 充当 Web 控制台,让我可以快速检查一切是否正常。
java -cp $ARCHIVES -Djava.security.policy=$POLICY -Dconfigfile=$CONFIG_FILE $CLASS
一旦我将其放入初始化脚本中,端口就不会打开,但应用程序以某种方式设法以以下消息启动:“死机或回显端口未响应”。
这是我的初始化脚本中的启动-停止-守护进程行:
start-stop-daemon --start --chuid thomas --quiet --make-pidfile --pidfile $PIDFILE --exec $DAEMON -- \
$DAEMON_ARGS \
手动执行和脚本执行之间有什么区别可以解释应用程序已半启动?
作为附加信息,该应用程序是SIPS办公服务器(支付解决方案)。
答案1
根据您发布的内容,您的方法看起来不错。我找到了一个使用以下行的示例初始化脚本:
start-stop-daemon --oknodo --start --quiet --chuid $USER --pidfile $PIDFILE \
--exec $DAEMON -- --pid-file $PIDFILE
这直接来自文件:/etc/init.d/speech-dispatcher
。
我会特别注意pidfile
,甚至可能手动将其定向到您绝对肯定用户具有读/写访问权限的路径,thomas
以确保您的问题不是权限问题。