【问题标题】:How do I launch my app from Jenkins?如何从 Jenkins 启动我的应用程序?
【发布时间】: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 启动我的应用程序?

【问题讨论】:

    标签: java jenkins


    【解决方案1】:

    您的 /etc/default/jenkins 文件中有错字。 Dhudson.util.ProcessTree.disable=true 之前缺少连字符“-”。它应该是 -Dhudson.util.ProcessTree.disable=true。 另外,daemonize -E BUILD_ID=dontKillMe 的错误是什么?

    【讨论】:

      猜你喜欢
      • 2012-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-01
      • 2012-09-02
      相关资源
      最近更新 更多