#! /bin/sh ### BEGIN INIT INFO # Provides: @DAEMON@ # Default-Start: 2 3 4 5 # Default-Stop: 1 # Short-Description: Yandex daemon ### END INIT INFO USER=metrica GROUP=metrica SHELL=/bin/sh PROGRAM=@DAEMON@ SYSCONFDIR=/etc/$PROGRAM PIDDIR=/var/run/$PROGRAM LOGDIR=/var/log/$PROGRAM LOCALSTATEDIR=/var/lock BINDIR=/usr/bin [ -x $BINDIR/$PROGRAM ] || exit 0 CNFFILE=$SYSCONFDIR/config.xml PIDFILE=$PIDDIR/$PROGRAM.pid LOCKFILE=$LOCALSTATEDIR/$PROGRAM RETVAL=0 isrun() { [ -r "$PIDFILE" ] && pgrep -s `cat "$PIDFILE"` >/dev/null 2>&1 && return 0 || return 1 } wait4done() { while isrun; do sleep 1 done } start() { local EXIT_STATUS EXIT_STATUS=0 echo -n "Start $PROGRAM service: " if isrun; then echo -n "already running " EXIT_STATUS=1 else # Clean stale lock files rm -f "$PIDFILE" "$LOCKFILE" mkdir -p $LOGDIR mkdir -p $PIDDIR chown -R $USER:$GROUP $LOGDIR chown -R $USER:$GROUP $PIDDIR su -l $USER -s $SHELL -c "\"$BINDIR/$PROGRAM\" --daemon --pid-file=\"$PIDFILE\" --config-file=\"$CNFFILE\"" EXIT_STATUS=$? fi if [ $EXIT_STATUS -eq 0 ]; then touch "$LOCKFILE" echo "DONE" else echo "FAILED" fi return $EXIT_STATUS } stop() { local EXIT_STATUS EXIT_STATUS=0 echo -n "Stop $PROGRAM service: " if isrun; then kill -INT `cat "$PIDFILE"` wait4done rm -f "$LOCKFILE" fi echo "DONE" return $EXIT_STATUS } restart() { stop start } # See how we were called. EXIT_STATUS=0 case "$1" in start) start ;; stop) stop ;; status) isrun && echo "$PROGRAM service is running" || echo "$PROGRAM service is stopped" ;; restart) restart ;; reload) restart ;; condstart) isrun || start ;; condstop) isrun && stop ;; condrestart) isrun && restart ;; condreload) isrun && restart ;; fallenstart) [ -r "$PIDFILE" ] && start ;; *) echo "Usage: ${0##*/} {start|stop|status|restart|reload|condstart|condstop|condrestart|condreload|fallenstart}" EXIT_STATUS=2 esac exit $EXIT_STATUS