gentoo/dev-util/jenkins-bin/files/init.sh

60 lines
1.8 KiB
Bash

#!/sbin/runscript
depend() {
need net
use dns logger mysql postgresql
}
JENKINS_PIDFILE=/run/jenkins/jenkins.pid
JENKINS_WAR=/usr/lib/jenkins/jenkins.war
RUN_AS=jenkins
checkconfig() {
if [ ! -n "$JENKINS_HOME" ] ; then
eerror "JENKINS_HOME not configured"
return 1
fi
if [ ! -d "$JENKINS_HOME" ] ; then
eerror "JENKINS_HOME directory does not exist: $JENKINS_HOME"
return 1
fi
return 0
}
start() {
checkconfig || return 1
[ -d /var/run/jenkins ] || mkdir /var/run/jenkins
JAVA_HOME=`java-config --jre-home`
COMMAND=$JAVA_HOME/bin/java
JAVA_PARAMS="$JENKINS_JAVA_OPTIONS -DJENKINS_HOME=$JENKINS_HOME -jar $JENKINS_WAR"
# Don't use --daemon here, because in this case stop will not work
PARAMS="--logfile=/var/log/jenkins/jenkins.log"
[ -n "$JENKINS_PORT" ] && PARAMS="$PARAMS --httpPort=$JENKINS_PORT"
[ -n "$JENKINS_DEBUG_LEVEL" ] && PARAMS="$PARAMS --debug=$JENKINS_DEBUG_LEVEL"
[ -n "$JENKINS_HANDLER_STARTUP" ] && PARAMS="$PARAMS --handlerCountStartup=$JENKINS_HANDLER_STARTUP"
[ -n "$JENKINS_HANDLER_MAX" ] && PARAMS="$PARAMS --handlerCountMax=$JENKINS_HANDLER_MAX"
[ -n "$JENKINS_HANDLER_IDLE" ] && PARAMS="$PARAMS --handlerCountMaxIdle=$JENKINS_HANDLER_IDLE"
[ -n "$JENKINS_ARGS" ] && PARAMS="$PARAMS $JENKINS_ARGS"
if [ "$JENKINS_ENABLE_ACCESS_LOG" = "yes" ]; then
PARAMS="$PARAMS --accessLoggerClassName=winstone.accesslog.SimpleAccessLogger --simpleAccessLogger.format=combined --simpleAccessLogger.file=/var/log/jenkins/access_log"
fi
ebegin "Starting ${SVCNAME}"
start-stop-daemon --start --quiet --background \
--make-pidfile --pidfile $JENKINS_PIDFILE \
--user $RUN_AS \
--exec "${COMMAND}" -- $JAVA_PARAMS $PARAMS
eend $?
}
stop() {
ebegin "Stopping ${SVCNAME}"
start-stop-daemon --stop --quiet --pidfile $JENKINS_PIDFILE
eend $?
}