#!/bin/sh # # SCM-Server start script # # # Copyright (c) 2010, Sebastian Sdorra # All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions are met: # # 1. Redistributions of source code must retain the above copyright notice, # this list of conditions and the following disclaimer. # 2. Redistributions in binary form must reproduce the above copyright notice, # this list of conditions and the following disclaimer in the documentation # and/or other materials provided with the distribution. # 3. Neither the name of SCM-Manager; nor the names of its # contributors may be used to endorse or promote products derived from this # software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "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 REGENTS OR CONTRIBUTORS 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. # # http://bitbucket.org/sdorra/scm-manager # # chkconfig: 35 35 65 # description: SCM-Server # ### BEGIN INIT INFO # Provides: scm-server # Required-Start: $local_fs $remote_fs $network $time $named # Required-Stop: $local_fs $remote_fs $network $time $named # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Description: SCM-Server ### END INIT INFO # start script is based on the one posted from JavaNode to SCM-Manager mailing # list: https://groups.google.com/d/msg/scmmanager/-wNjenUbl0Q/CkELJ6fLMHsJ # Source function library. if [ -x /etc/rc.d/init.d/functions ]; then . /etc/rc.d/init.d/functions fi # Check for and source configuration file otherwise set defaults RETVAL=0 appname=ScmServerDaemon # See how we were called. start() { if [ $(ps aux | grep java | grep ${appname} | wc -l) = 0 ] then echo "SCM-Server will now be started" /opt/scm-server/bin/scm-server start else echo "SCM-Server already running" status fi } stop() { if [ ! $(ps aux | grep java | grep ${appname} | wc -l) = 0 ] then echo "SCM-Server will now be stopped" /opt/scm-server/bin/scm-server stop else echo "SCM-Server is not running" fi } status() { if [ "$(ps auxwww | grep java | grep ${appname} | awk '{ print $1 " PID:" $2 }')" ]; then echo "SCM-Server is running" ps auxwww | grep java | grep ${appname} | awk '{ print " PID: " $2 }' else echo "SCM-Server is not running" fi } restart() { stop SECONDS=0 STAT=$( ps auxwww | grep java | grep ${appname} | wc -l ) while [ $STAT -ne 0 ] do echo -n . sleep 3 if [ $SECONDS -gt 300 ] then SCM_PID=$( ps auxwww | grep java | grep ${appname} | awk '{ print $2 }' ) kill -9 $SCM_PID fi STAT=$( ps auxwww | grep java | grep ${appname} | wc -l ) done status start status } # See how we were called. case "$1" in start) start ;; stop) stop ;; restart) restart ;; status) status ;; *) echo "Usage: $0 {start|stop|restart}" exit 1 esac exit $RETVAL