# Allow executing init.d scripts as upstart jobs # Operate against system upstart, not session unset UPSTART_SESSION # Bail if there is an upstart job, and called via RC _RC_SCRIPT=${0#/etc/rc?.d/[KS]??*} if [ -r "/etc/init/${_RC_SCRIPT}.conf" ] && which initctl >/dev/null \ && initctl version 2>/dev/null | grep -q upstart then exit 0 fi _UPSTART_JOB=${0#/etc/init.d/} if [ -r "/etc/init/${_UPSTART_JOB}.conf" ] && which initctl >/dev/null \ && initctl version 2>/dev/null | grep -q upstart \ && initctl status ${_UPSTART_JOB} 2>/dev/null 1>/dev/null then # Upstart configuration exists for this job and we're running under upstart case "${1:-}" in start|stop|status|reload) # Action is a valid upstart action exec ${1} ${_UPSTART_JOB} ;; restart|force-reload) # Map restart to the usual sysvinit behavior. stop ${_UPSTART_JOB} || : exec start ${_UPSTART_JOB} ;; esac fi