Skip to content

Instantly share code, notes, and snippets.

@gmircea
Created July 5, 2016 10:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save gmircea/c43f0afc9fffb669f62efd128d951313 to your computer and use it in GitHub Desktop.
Save gmircea/c43f0afc9fffb669f62efd128d951313 to your computer and use it in GitHub Desktop.
#! /bin/sh
### BEGIN INIT INFO
# Provides: datahubd
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: DISCOS datahub
### END INIT INFO
# PATH should only include /usr/* if it runs after the mountnfs.sh script
PATH=/sbin:/usr/sbin:/bin:/usr/bin
DESC="datahub"
NAME="datahubd"
DAEMON=/bin/$NAME
DAEMON_ARGS="serve"
. /etc/init.d/functions || exit 1
# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0
#
# Function that starts the daemon/service
#
do_start() {
local status pid
status=0
pid=`pidofproc $NAME` || status=$?
case $status in
0)
echo "$DESC already running ($pid)."
exit 1
;;
*)
echo "Starting $DESC ..."
exec $DAEMON $DAEMON_ARGS >/dev/null 2>&1 || status=$?
echo "ERROR: Failed to start $DESC."
exit $status
;;
esac
# Add code here, if necessary, that waits for the process to be ready
# to handle requests from services started subsequently which depend
# on this one. As a last resort, sleep for some time.
}
#
# Function that stops the daemon/service
#
do_stop() {
local pid status
status=0
pid=`pidofproc $NAME` || status=$?
case $status in
0)
# Exit when fail to stop, the kill would complain when fail
kill -s 15 $pid >/dev/null && \
echo "Stopped $DESC ($pid)." || exit $?
;;
*)
echo "$DESC is not running; none killed." >&2
;;
esac
# Wait for children to finish too if this is a daemon that forks
# and if the daemon is only ever run from this initscript.
# If the above conditions are not satisfied then add some other code
# that waits for the process to drop all resources that could be
# needed by services started subsequently. A last resort is to
# sleep for some time.
return $status
}
case "$1" in
start)
do_start
;;
stop)
do_stop || exit $?
;;
restart)
# Always start the service regardless the status of do_stop
do_stop
do_start
;;
try-restart|force-reload)
# force-reload is the same as reload or try-restart according
# to its definition, the reload is not implemented here, so
# force-reload is the alias of try-restart here, but it should
# be the alias of reload if reload is implemented.
#
# Only start the service when do_stop succeeds
do_stop && do_start
;;
*)
echo "Usage: $0 {start|stop|restart|try-restart|force-reload}" >&2
exit 3
;;
esac
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment