From a208bbbf0f6564e8c83083028f1edd06d0f38274 Mon Sep 17 00:00:00 2001 From: Michael Prokop Date: Fri, 13 Nov 2009 20:18:42 +0100 Subject: [PATCH] Update init script: install it under different name, add my_tty shell function - update overrides accordingly --- ...config.init => grml-udev-config.grml-udev.init} | 46 +++++++++++++++------- debian/overrides | 6 +-- debian/rules | 2 +- 3 files changed, 36 insertions(+), 18 deletions(-) rename debian/{grml-udev-config.init => grml-udev-config.grml-udev.init} (75%) diff --git a/debian/grml-udev-config.init b/debian/grml-udev-config.grml-udev.init similarity index 75% rename from debian/grml-udev-config.init rename to debian/grml-udev-config.grml-udev.init index 7f2fa85..56b4a5a 100644 --- a/debian/grml-udev-config.init +++ b/debian/grml-udev-config.grml-udev.init @@ -1,6 +1,6 @@ #!/bin/sh ### BEGIN INIT INFO -# Provides: grml-udev-config +# Provides: grml-udev # Required-Start: mountkernfs # Required-Stop: # Should-Start: @@ -12,6 +12,13 @@ . /lib/lsb/init-functions +# shell version of /usr/bin/tty +my_tty() { + [ -x /bin/readlink ] || return 0 + [ -e /proc/self/fd/0 ] || return 0 + readlink --silent /proc/self/fd/0 || true +} + # are we running within init (non_interactive) or within shell (interactive)? check_for_non_interactive() { if [ "$RUNLEVEL" = "S" -a "$PREVLEVEL" = "N" ]; then @@ -26,24 +33,35 @@ check_for_non_interactive() { return 1 } -exec_wrapper() { - if [ -x "`which invoke-rc.d 2>/dev/null`" ]; then - invoke-rc.d $1 $2 - else - /etc/init.d/$1 $2 +# start init script through official Debian way +udev_exec() { + # avoid syntax error if called without valid parameter: + [ -z "$1" ] && exec /etc/init.d/udev "$1" + + exec /etc/init.d/udev "$1" +} + +# test whether udev is enabled in init's configuration +udev_active() { + # file-rc: + if [ -r /etc/runlevel.conf ] && egrep -q '^[0-9]+.*-.*-.*\/etc\/init.d\/ydev$' /etc/runlevel.conf ; then + return 0 fi + + # sysv-rc: + if ls /etc/rcS.d/*udev >/dev/null 2>&1 ; then + return 0 + fi + + return 1 } +# if original udev init script is enabled to not execute our script udev_init_check() { - # test whether udev is enabled in init's configuration - # if so do not execute our script but instead use original - # udev init script only - if update-rc.d -n udev start 3 S >/dev/null ; then + if udev_active ; then log_warning_msg "Original udev init script is configured for startup, ignoring request to start $0" return 1 fi - - return 0 } case "$1" in @@ -83,13 +101,13 @@ case "$1" in fi fi - udev_init_check && exec_wrapper udev start + udev_init_check && udev_exec start ;; # in any other situation just directly invoke udev: *) - udev_init_check && exec_wrapper udev $1 + udev_init_check && udev_exec "$1" ;; esac diff --git a/debian/overrides b/debian/overrides index 72af869..48c89bd 100644 --- a/debian/overrides +++ b/debian/overrides @@ -1,3 +1,3 @@ -grml-udev-config: init.d-script-does-not-implement-required-option /etc/init.d/grml-udev-config stop -grml-udev-config: init.d-script-does-not-implement-required-option /etc/init.d/grml-udev-config restart -grml-udev-config: init.d-script-does-not-implement-required-option /etc/init.d/grml-udev-config force-reload +grml-udev-config: init.d-script-does-not-implement-required-option /etc/init.d/grml-udev stop +grml-udev-config: init.d-script-does-not-implement-required-option /etc/init.d/grml-udev restart +grml-udev-config: init.d-script-does-not-implement-required-option /etc/init.d/grml-udev force-reload diff --git a/debian/rules b/debian/rules index 7dd91ab..a526d1f 100755 --- a/debian/rules +++ b/debian/rules @@ -44,7 +44,7 @@ binary-indep: install dh_installudev --name=grml-external --priority 60 dh_installudev --name=grml-usbdev --priority 60 dh_installudev --name=grml-blockdevices --priority 60 - dh_installinit --no-start + dh_installinit --no-start --name=grml-udev # --update-rcd-params='start 2 S .' dh_installman dh_link -- 2.1.4