Skip to content

Instantly share code, notes, and snippets.

@adrianlzt
Last active August 29, 2015 14:08
Show Gist options
  • Save adrianlzt/c8588823a9536868251b to your computer and use it in GitHub Desktop.
Save adrianlzt/c8588823a9536868251b to your computer and use it in GitHub Desktop.
#!/bin/sh
# chkconfig: 2345 85 15
# description: Mod-Gearman Worker Daemon
### BEGIN INIT INFO
# Provides: mod_gearman_worker
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start/Stop the Mod-Gearman Worker Daemon
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/libexec/pnp4nagios/process_perfdata.pl
NAME=pnp_gearman_worker
CONFIG=/etc/pnp4nagios/process_perfdata.cfg
PIDFILE=/var/mod_gearman/pnp_gearman_worker.pid
USER=icinga
USERID=`id -u`
# load extra environment variables
if [ -f /etc/sysconfig/mod_gearman_worker ]; then
. /etc/sysconfig/mod_gearman_worker
fi
# create state dir
if [ "$USERID" -eq 0 ]; then
mkdir -p $(dirname $PIDFILE)
chown $USER: $(dirname $PIDFILE)
fi
case "$1" in
start)
echo -n "Starting $NAME..."
CMD="umask 0022; $DAEMON --daemon --gearman --config=$CONFIG --pidfile=$PIDFILE"
if [ "$USERID" -eq 0 ]; then
su -s $SHELL - $USER -c "umask 022; $CMD"
else
$CMD
fi
if [ $? -eq 0 ]; then
echo "OK"
else
echo "failed"
fi
;;
stop)
echo -n "Stopping $NAME..."
pid=`cat $PIDFILE 2>/dev/null`
if [ -z $pid ]; then
echo ". Not running."
else
kill $pid
for x in 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5; do
echo -n "."
ps -p $pid > /dev/null 2>&1 && sleep 1;
done
ps -p $pid > /dev/null 2>&1;
if [ $? -ne 0 ]; then
echo "OK"
exit 0;
else
echo "failed"
exit 1;
fi
fi
;;
reload|force-reload)
echo "Reloading $NAME configuration files"
pid=`cat $PIDFILE 2>/dev/null`
if [ "$pid" != "" ]; then
kill -HUP $pid
fi
;;
status)
pid=`cat $PIDFILE 2>/dev/null`
if [ "$pid" != "" ]; then
ps -p $pid > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "$NAME is running with pid $pid"
exit 0;
fi
fi
echo "$NAME is not running"
exit 1;
;;
restart)
$0 stop && sleep 1 && $0 start
exit $?
;;
*)
echo "Usage: $NAME {start|stop|status|restart}"
exit 1
;;
esac
exit 0
#!/bin/sh
# chkconfig: 2345 85 15
# description: Mod-Gearman Worker Daemon
### BEGIN INIT INFO
# Provides: mod_gearman_worker
# Required-Start: $local_fs
# Required-Stop: $local_fs
# Should-Start:
# Should-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start/Stop the Mod-Gearman Worker Daemon
### END INIT INFO
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DAEMON=/usr/libexec/pnp4nagios/process_perfdata.pl
NAME=pnp_gearman_worker
CONFIG=/etc/pnp4nagios/process_perfdata.cfg
PIDFILE=/var/mod_gearman/pnp_gearman_worker.pid
USER=icinga
USERID=`id -u`
# load extra environment variables
if [ -f /etc/sysconfig/pnp_gearman_worker ]; then
. /etc/sysconfig/pnp_gearman_worker
fi
# create state dir
if [ "$USERID" -eq 0 ]; then
mkdir -p $(dirname $PIDFILE)
chown $USER: $(dirname $PIDFILE)
fi
case "$1" in
start)
echo -n "Starting $NAME..."
CMD="umask 0022; $DAEMON --daemon --gearman --config=$CONFIG --pidfile=$PIDFILE"
if [ "$USERID" -eq 0 ]; then
su -s $SHELL - $USER -c "umask 022; $CMD"
else
$CMD
fi
if [ $? -eq 0 ]; then
echo "OK"
else
echo "failed"
fi
;;
stop)
echo -n "Stopping $NAME..."
pid=`cat $PIDFILE 2>/dev/null`
if [ -z $pid ]; then
echo ". Not running."
else
kill $pid
for x in 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5; do
echo -n "."
ps -p $pid > /dev/null 2>&1 && sleep 1;
done
ps -p $pid > /dev/null 2>&1;
if [ $? -ne 0 ]; then
echo "OK"
exit 0;
else
echo "failed"
exit 1;
fi
fi
;;
reload|force-reload)
echo "Reloading $NAME configuration files"
pid=`cat $PIDFILE 2>/dev/null`
if [ "$pid" != "" ]; then
kill -HUP $pid
fi
;;
status)
pid=`cat $PIDFILE 2>/dev/null`
if [ "$pid" != "" ]; then
ps -p $pid > /dev/null 2>&1
if [ $? -eq 0 ]; then
echo "$NAME is running with pid $pid"
exit 0;
fi
fi
echo "$NAME is not running"
exit 1;
;;
restart)
$0 stop && sleep 1 && $0 start
exit $?
;;
*)
echo "Usage: $NAME {start|stop|status|restart}"
exit 1
;;
esac
exit 0
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment