#!/bin/sh -e # upstart-job # # Symlink target for initscripts that have been converted to Upstart. set -e UPSTART_JOB_CONF="/etc/upstart-job.conf" INITSCRIPT="$(basename "$0")" JOB="${INITSCRIPT%.sh}" if [ "$JOB" = "upstart-job" ]; then if [ -z "$1" ]; then echo "Usage: upstart-job JOB COMMAND" 1>&2 exit 1 fi JOB="$1" INITSCRIPT="$1" shift else if [ -z "$1" ]; then echo "Usage: $0 COMMAND" 1>&2 exit 1 fi fi COMMAND="$1" shift if [ -z "$DPKG_MAINTSCRIPT_PACKAGE" ]; then ECHO_NOTE=echo ECHO_ERROR=echo else ECHO_NOTE=: ECHO_ERROR=: fi if [ -e "$UPSTART_JOB_CONF" ]; then . "$UPSTART_JOB_CONF" fi $ECHO_NOTE "Rather than invoking init scripts through /etc/init.d, use the service(8)" $ECHO_NOTE "utility, e.g. service $INITSCRIPT $COMMAND" case $COMMAND in status) $ECHO_NOTE $ECHO_NOTE "Since the script you are attempting to invoke has been converted to an" $ECHO_NOTE "Upstart job, you may also use the $COMMAND(8) utility, e.g. $COMMAND $JOB" $COMMAND "$JOB" ;; start|stop|restart) $ECHO_NOTE $ECHO_NOTE "Since the script you are attempting to invoke has been converted to an" $ECHO_NOTE "Upstart job, you may also use the $COMMAND(8) utility, e.g. $COMMAND $JOB" PID=$(status "$JOB" 2>/dev/null | awk '/[0-9]$/ { print $NF }') if [ -z "$PID" ] && [ "$COMMAND" = "stop" ]; then exit 0 elif [ -n "$PID" ] && [ "$COMMAND" = "start" ]; then exit 0 elif [ -z "$PID" ] && [ "$COMMAND" = "restart" ]; then start "$JOB" exit 0 fi $COMMAND "$JOB" ;; reload|force-reload) $ECHO_NOTE $ECHO_NOTE "Since the script you are attempting to invoke has been converted to an" $ECHO_NOTE "Upstart job, you may also use the reload(8) utility, e.g. reload $JOB" reload "$JOB" ;; *) $ECHO_ERROR $ECHO_ERROR "The script you are attempting to invoke has been converted to an Upstart" 1>&2 $ECHO_ERROR "job, but $COMMAND is not supported for Upstart jobs." 1>&2 exit 1 esac