X-Git-Url: http://xvm.mit.edu/gitweb/invirt/packages/invirt-dev.git/blobdiff_plain/c81a9160bc47b724cba617285da6fec429734a21..7f8e250069417ac186bdd601c3b2857e34fe8434:/debian/invirt-dev.init diff --git a/debian/invirt-dev.init b/debian/invirt-dev.init index 160aabd..bb3527c 100755 --- a/debian/invirt-dev.init +++ b/debian/invirt-dev.init @@ -13,22 +13,70 @@ # Do NOT "set -e" -NAME=invirt-dev +NAME=invirtibuilder +DESC="the Invirt build daemon" +DAEMON="/usr/bin/$NAME" +PIDFILE="/var/run/$NAME.pid" GEN_FILES=/srv/repository/conf/distributions +[ -x "$DAEMON" ] || exit 0 + +. /lib/init/std-init.sh . /lib/init/gen-files.sh -case "$1" in - start|reload|force-reload|restart) - log_begin_msg "Reloading config for $PACKAGE" - gen_files - reprepro-env export - invirt-build-conf - log_end_msg $? - ;; - stop) - ;; - *) - log_success_msg "Usage: /etc/init.d/$NAME {start|reload|force-reload|restart|stop}" - ;; -esac +do_start() +{ + # Return + # 0 if daemon has been started + # 1 if daemon was already running + # 2 if daemon could not be started + ret=0 + + gen_files || ret=2 + for d in db dists lists pool; do + dir="/srv/repository/$d" + mkdir -p "$dir" + chown -R repository:nogroup "$dir" + done + reprepro-env export || ret=2 + + invirt-build-conf || ret=2 + + if [ "$ret" = 0 ]; then + # Return + # 0 if daemon has been started + # 1 if daemon was already running + # 2 if daemon could not be started + log_daemon_msg "Starting $DESC" "$NAME" + if daemon --running -n $NAME; then + log_daemon_msg "$NAME is already running!" + return 1 + fi + daemon -r -O daemon.info -E daemon.err -n $NAME -U $DAEMON || return 2 + fi + return $ret +} + +do_stop() +{ + # Return + # 0 if daemon has been stopped + # 1 if daemon was already stopped + # 2 if daemon could not be stopped + # other if a failure occurred + log_daemon_msg "Stopping $DESC" "$NAME" + daemon --stop -n $NAME + RETVAL="$?" + [ "$RETVAL" = 2 ] && return 2 + # Many daemons don't delete their pidfiles when they exit. + # rm -f $PIDFILE + return "$RETVAL" +} + +do_reload() +{ + do_stop + do_start +} + +std_init "$@"