diff options
Diffstat (limited to 'system/jenkins/files/rc.jenkins')
-rw-r--r-- | system/jenkins/files/rc.jenkins | 82 |
1 files changed, 82 insertions, 0 deletions
diff --git a/system/jenkins/files/rc.jenkins b/system/jenkins/files/rc.jenkins new file mode 100644 index 0000000000..d13e3912aa --- /dev/null +++ b/system/jenkins/files/rc.jenkins @@ -0,0 +1,82 @@ +#!/bin/sh +# Copyright 2008,2009 Vincent Batts, Birmingham, AL, USA +# Copyright 2010,2011 Vincent Batts, Vienna, VA, USA +# vbatts@hashbangbash.com, http://hashbangbash.com/ +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +function getPid() { + pgrep -f 'java.*jenkins.war' +} +pid_file="/var/run/jenkins/jenkins.pid" +max_wait=8 + +# Define start and stop functions +jenkins_start() { + p=$(getPid) + if [ $p ]; then + echo "jenkins appears to already be running." + echo "on $p, check it first ..." + exit 1 + else + echo "Starting jenkins daemon..." + jenkinsd 2>/dev/null 1>&2 || exit 1 + fi +} + +jenkins_stop() { + echo -ne "Stopping jenkins daemon... " + kill $(cat $pid_file) 2>/dev/null >/dev/null + + p=$(getPid) + if [ ${p} -gt 1 ] 2>/dev/null ; then + echo "pid ${p}" + kill ${p} + else + echo "jenkins.war not found running" + fi +} + +# See how we were called and take appropriate action +case $1 in + start) + jenkins_start + ;; + stop) + jenkins_stop + ;; + restart) + jenkins_stop + i=0 + while [ $i -lt $max_wait ] ; do + if [ $(getPid) ] >/dev/null ; then + sleep 1 + else + break + fi + i=$[$i+1] + done + jenkins_start + ;; + *) + echo "Usage: $0 {start|stop|restart}" + exit 1 + ;; +esac + |