#! /bin/sh ### BEGIN INIT INFO # Provides: Gitorious GIT-Daemon # Required-Start: # Required-Stop: # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 # Short-Description: GIT-Daemon server daemon # Description: Starts the GIT-Daemon needed by Gitorious ### END INIT INFO # Author: Fabio Akita RETVAL=0 PROG="git-daemon" GIT_DAEMON="/opt/ruby-enterprise/bin/ruby /var/www/gitorious/script/git-daemon -d" LOCK_FILE=/var/lock/git-daemon PID_FILE=/var/www/gitorious/log/git-daemon.pid do_check_pid() { if [ -f $PID_FILE ]; then PID=`cat $PID_FILE` RUNNING=`ps --pid $PID | wc -l` else PID=0 RUNNING=0 fi } runlevel=`runlevel | awk '{print $2}'` start() { do_check_pid if [ $RUNNING != 2 ] ; then echo -n "Starting $PROG: " /bin/su - git -c "$GIT_DAEMON" sleep 5 if [ -f $PID_FILE ] ; then echo "success" RETVAL=0 else echo "failure" RETVAL=1 fi else echo -n "$PROG already running" RETVAL=1 fi [ "$RETVAL" = 0 ] && touch $LOCK_FILE echo } stop() { do_check_pid echo -n "Stopping $PROG: " if [ $RUNNING != 2 ] ; then echo -n "Stopping $PROG" else PROGPID=`cat $PID_FILE` kill -TERM $PROGPID fi RETVAL=0 # if we are in halt or reboot runlevel kill all running sessions # so the TCP connections are closed cleanly if [ "x$runlevel" = x0 -o "x$runlevel" = x6 ] ; then PROGPID=`cat $PID_FILE` kill -9 $PROGPID > /dev/null fi [ "$RETVAL" = 0 ] && rm -f $LOCK_FILE && rm -f $PID_FILE echo } case "$1" in start) start ;; stop) stop ;; restart) stop start ;; condrestart) if [ -f $LOCK_FILE ] ; then if [ "$RETVAL" = 0 ] ; then stop # avoid race sleep 10 start fi fi ;; *) echo $"Usage: $0 {start|stop|restart|condrestart}" RETVAL=1 esac exit $RETVAL