【发布时间】:2016-10-12 01:24:22
【问题描述】:
我有一个 Jenkins 工作,它提取一个 Java 应用程序,在 .class 文件中编译 Java 文件,然后从类文件和所有依赖项中构建一个 uberjar。然后我将其作为最后的构建步骤:
/etc/init.d/vivian restart
重启函数先调用“stop”再调用“start”:
WORK_DIR="/home/jenkins/vivian"
NAME="venus"
JAR="venus.jar"
USER="jenkins"
DAEMON="/usr/bin/java"
DAEMON_ARGS=" -cp /home/jenkins/vivian/venus.jar com.melonapp.venus.Main"
start () {
if [ ! -f $WORK_DIR/venus.pid ]; then
/usr/bin/java -cp /home/jenkins/vivian/venus.jar com.melonapp.venus.Main
fi
}
stop () {
echo "Stopping venus..."
/sbin/start-stop-daemon --stop --exec $DAEMON --pidfile $WORK_DIR/venus.pid
rm $WORK_DIR/venus.pid
}
但是,我似乎遇到了这个问题:
https://wiki.jenkins-ci.org/display/JENKINS/Spawning+processes+from+build
On Unix, you can use a wrapper like this to make the daemon behave. You can call your command like this:
daemonize -E BUILD_ID=dontKillMe /path/to/your/command
Note that this will set the BUILD_ID environment variable for the process being spawned to something other than the current BUILD_ID. Or you can start jenkins with -Dhudson.util.ProcessTree.disable=true - see ProcessTreeKiller for details.
但是“daemonize -E BUILD_ID=dontKillMe”只会给我一个错误,而“-Dhudson.util.ProcessTree.disable=true”似乎没有效果?我将其添加到此文件中:
/etc/default/jenkins
我添加的地方:
JENKINS_ARGS="--webroot=/var/cache/$NAME/war --httpPort=$HTTP_PORT --ajp13Port=$AJP_PORT --httpListenAddress=127.0.0.1 Dhudson.util.ProcessTree.disable=true "
这个文件应该有一些作用吗?
如何从 Jenkins 启动我的应用程序?
【问题讨论】: