From: Stéphane Graber Date: Sun, 10 Jan 2016 11:31:15 +0000 (+0100) Subject: Add 01-upstart-lsb from the upstart package, and make executing rc.d scripts no-op... X-Git-Tag: archive/raspbian/10.2018112800+rpi1^2~39 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=3ce3a48572b780c9ee3162d117762725bdf325d8;p=lsb.git Add 01-upstart-lsb from the upstart package, and make executing rc.d scripts no-op if there is an upstart job for that script Changed-By: Dimitri John Ledkov Fri, 30 May 2014 11:38:47 +0200 --- diff --git a/debian/control b/debian/control index 85eb103..5c2b65f 100644 --- a/debian/control +++ b/debian/control @@ -20,6 +20,8 @@ Architecture: all Multi-Arch: foreign Depends: ${misc:Depends} Pre-Depends: ${misc:Pre-Depends} +Replaces: upstart (<< 1.12.1-0ubuntu8) +Breaks: upstart (<< 1.12.1-0ubuntu8) Priority: required Description: Linux Standard Base init script functionality The Linux Standard Base (http://www.linuxbase.org/) is a standard diff --git a/debian/lsb-base.install b/debian/lsb-base.install index 66dc0df..a60c86d 100644 --- a/debian/lsb-base.install +++ b/debian/lsb-base.install @@ -1,2 +1,3 @@ init-functions /lib/lsb +init-functions.d/01-upstart-lsb /lib/lsb/init-functions.d init-functions.d/20-left-info-blocks /lib/lsb/init-functions.d diff --git a/init-functions.d/01-upstart-lsb b/init-functions.d/01-upstart-lsb new file mode 100644 index 0000000..92205ce --- /dev/null +++ b/init-functions.d/01-upstart-lsb @@ -0,0 +1,31 @@ +# 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