| 1 | #!/sbin/openrc-run |
| 2 | |
| 3 | depend() { |
| 4 | need net |
| 5 | use dns logger mysql postgresql |
| 6 | } |
| 7 | |
| 8 | checkconfig() { |
| 9 | if [ ! -n "$JENKINS_HOME" ] ; then |
| 10 | eerror "JENKINS_HOME not configured" |
| 11 | return 1 |
| 12 | fi |
| 13 | if [ ! -d "$JENKINS_HOME" ] ; then |
| 14 | checkpath -q -d -o jenkins:jenkins -m 0755 "$JENKINS_HOME" || return 1 |
| 15 | fi |
| 16 | return 0 |
| 17 | } |
| 18 | |
| 19 | start() { |
| 20 | checkconfig || return 1 |
| 21 | |
| 22 | JAVA_HOME="/usr/lib/jvm/default-jvm" |
| 23 | COMMAND=$JAVA_HOME/bin/java |
| 24 | |
| 25 | JAVA_PARAMS="$JENKINS_JAVA_OPTIONS -DJENKINS_HOME=$JENKINS_HOME -jar $JENKINS_WAR" |
| 26 | |
| 27 | # Don't use --daemon here, because in this case stop will not work |
| 28 | PARAMS="--logfile=/var/log/jenkins/jenkins.log" |
| 29 | [ -n "$JENKINS_PORT" ] && PARAMS="$PARAMS --httpPort=$JENKINS_PORT" |
| 30 | [ -n "$JENKINS_DEBUG_LEVEL" ] && PARAMS="$PARAMS --debug=$JENKINS_DEBUG_LEVEL" |
| 31 | [ -n "$JENKINS_HANDLER_STARTUP" ] && PARAMS="$PARAMS --handlerCountStartup=$JENKINS_HANDLER_STARTUP" |
| 32 | [ -n "$JENKINS_ARGS" ] && PARAMS="$PARAMS $JENKINS_ARGS" |
| 33 | |
| 34 | if [ "$JENKINS_ENABLE_ACCESS_LOG" = "yes" ]; then |
| 35 | PARAMS="$PARAMS --accessLoggerClassName=winstone.accesslog.SimpleAccessLogger --simpleAccessLogger.format=combined --simpleAccessLogger.file=/var/log/jenkins/access_log" |
| 36 | fi |
| 37 | |
| 38 | ebegin "Starting ${SVCNAME}" |
| 39 | start-stop-daemon --start --quiet --background \ |
| 40 | --make-pidfile --pidfile $JENKINS_PIDFILE \ |
| 41 | --user ${JENKINS_USER} \ |
| 42 | --exec "${COMMAND}" -- $JAVA_PARAMS $PARAMS |
| 43 | eend $? |
| 44 | } |
| 45 | |
| 46 | stop() { |
| 47 | ebegin "Stopping ${SVCNAME}" |
| 48 | start-stop-daemon --stop --quiet --pidfile $JENKINS_PIDFILE |
| 49 | eend $? |
| 50 | } |
| 51 | |