initscript-example
#!/bin/sh
set -e
### BEGIN INIT INFO
# Provides: keks
# Required-Start:
# Required-Stop:
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: KeKs Rails Server
### END INIT INFO
DAEMON=/srv/keks/boot.bash
USR=keks
NAME="keks-server"
DESC="KeKs elearning system server"
case "$1" in
start)
echo -n "Starting $DESC: "
start-stop-daemon --background --chuid $USR --user $USR --start --quiet --pidfile /var/run/$NAME.pid \
--make-pidfile --startas $DAEMON -- $DAEMON_OPTS
echo "$NAME."
;;
stop)
echo -n "Stopping $DESC: "
start-stop-daemon --chuid $USR --user $USR --stop --oknodo --quiet --pidfile /var/run/$NAME.pid \
--startas $DAEMON
if [ -s /var/run/$NAME.pid ]; then
rm /var/run/$NAME.pid
fi
echo "$NAME."
;;
force-reload)
# check whether $DAEMON is running. If so, restart
start-stop-daemon --chuid $USR --user $USR --stop --test --quiet --pidfile \
/var/run/$NAME.pid --startas $DAEMON \
&& $0 restart \
|| exit 0
;;
restart)
echo -n "Restarting $DESC: "
start-stop-daemon --chuid $USR --user $USR --stop --oknodo --quiet --pidfile \
/var/run/$NAME.pid --startas $DAEMON
sleep 1
start-stop-daemon --background --chuid $USR --user $USR --start --quiet --pidfile \
/var/run/$NAME.pid --make-pidfile --startas $DAEMON -- $DAEMON_OPTS
echo "$NAME."
;;
status)
if [ -s /var/run/$NAME.pid ]; then
RUNNING=$(cat /var/run/$NAME.pid)
if [ -d /proc/$RUNNING ]; then
echo "$NAME is running."
exit 0
fi
# No such PID, or executables don't match
echo "$NAME is not running, but pidfile existed."
rm /var/run/$NAME.pid
exit 1
else
rm -f /var/run/$NAME.pid
echo "$NAME not running."
exit 1
fi
;;
*)
N=/etc/init.d/$NAME
echo "Usage: $N {start|stop|restart|force-reload}" >&2
exit 1
;;
esac
exit 0