#! /bin/sh
# ## BEGIN INIT INFO
# Provides: croc
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: Start daemon at boot time
# Description: Enable service provided by daemon.
# ## END INIT INFO
# This should be placed in /etc/init.d directory
# start with
# sudo /etc/init.d/croc start
# stop with
# sudo /etc/init.d/croc start
name=" croc"
dir=" /tmp"
user=" root"
cmd=" /usr/local/bin/croc --debug relay"
pid_file=" /var/run/$name .pid"
stdout_log=" /var/log/$name .log"
stderr_log=" /var/log/$name .err"
get_pid () {
cat " $pid_file "
}
is_running () {
[ -f " $pid_file " ] && ps ` get_pid` > /dev/null 2>&1
}
case " $1 " in
start)
if is_running; then
echo " Already started"
else
echo " Starting $name "
cd " $dir "
sudo -u " $user " $cmd >> " $stdout_log " 2>> " $stderr_log " &
echo $! > " $pid_file "
if ! is_running; then
echo " Unable to start, see $stdout_log and $stderr_log "
exit 1
fi
fi
;;
stop)
if is_running; then
echo -n " Stopping $name .."
kill ` get_pid`
for i in {1..10}
do
if ! is_running; then
break
fi
echo -n " ."
sleep 1
done
echo
if is_running; then
echo " Not stopped; may still be shutting down or shutdown may have failed"
exit 1
else
echo " Stopped"
if [ -f " $pid_file " ]; then
rm " $pid_file "
fi
fi
else
echo " Not running"
fi
;;
restart)
$0 stop
if is_running; then
echo " Unable to stop, will not attempt to start"
exit 1
fi
$0 start
;;
status)
if is_running; then
echo " Running"
else
echo " Stopped"
exit 1
fi
;;
* )
echo " Usage: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0
Cron Script (croc-reaper.sh)
#! /bin/bash
service=croc
if (( $(ps - ef | grep - v grep | grep ./ $service | wc - l) > 0 ))
then
echo " $service is running" > /dev/null
else
/etc/init.d/$service .init start
fi
@reboot /bin/sleep 110 && /etc/init.d/croc.init restart
* * * * * /location/to/croc-reaper.sh