如何使用upstart正确启动gradle生成的脚本?

时间:2014-10-20 21:25:15

标签: java linux bash gradle upstart

我试图将Java应用程序部署到VPS上。我正在使用Gradle构建系统和#39;应用程序'插入。我想让应用程序启动服务器。

在部署过程中,我运行./gradlew install来准备运行脚本。直接运行时,它们可以正常运行。

我使用http://www.whiteboardcoder.com/2014/02/ubuntu-upstart-job-with-java-jar.html作为upstart配置的基础:

description "the test server"
start on runlevel [2345]
stop on runlevel [!2345]

expect fork

script
   cd /opt/testserver/
   exec ./build/install/testserver/bin/testserver
end script

但是在运行start testserver之后由upstart报告的PID与使用ps找到的PID不同。我的猜测是,原因是生成脚本的最后一行:

exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" mypackage.TestServer"$@"

因此Upstart无法停止该应用。有没有办法让upstart看到正确的PID?

1 个答案:

答案 0 :(得分:0)

看起来这里没有分叉,所以你应该尝试删除expect fork位。