summaryrefslogtreecommitdiff
path: root/beagle/debian-rfs/usr/sbin/invoke-rc.d
diff options
context:
space:
mode:
Diffstat (limited to 'beagle/debian-rfs/usr/sbin/invoke-rc.d')
-rwxr-xr-xbeagle/debian-rfs/usr/sbin/invoke-rc.d464
1 files changed, 0 insertions, 464 deletions
diff --git a/beagle/debian-rfs/usr/sbin/invoke-rc.d b/beagle/debian-rfs/usr/sbin/invoke-rc.d
deleted file mode 100755
index e5887ee..0000000
--- a/beagle/debian-rfs/usr/sbin/invoke-rc.d
+++ /dev/null
@@ -1,464 +0,0 @@
-#!/bin/sh
-#
-# invoke-rc.d.sysvinit - Executes initscript actions
-#
-# SysVinit /etc/rc?.d version for Debian's sysvinit package
-#
-# Copyright (C) 2000,2001 Henrique de Moraes Holschuh <hmh@debian.org>
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the Free
-# Software Foundation; either version 2 of the License, or (at your option)
-# any later version.
-#
-# This program is distributed in the hope that it will be useful, but
-# WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
-# or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
-# for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
-
-# Constants
-RUNLEVEL=/sbin/runlevel
-POLICYHELPER=/usr/sbin/policy-rc.d
-INITDPREFIX=/etc/init.d/
-RCDPREFIX=/etc/rc
-
-# Options
-BEQUIET=
-MODE=
-ACTION=
-FALLBACK=
-NOFALLBACK=
-FORCE=
-RETRY=
-RETURNFAILURE=
-RC=
-
-# Shell options
-set +e
-
-dohelp () {
- #
- # outputs help and usage
- #
-cat <<EOF
-
-invoke-rc.d, Debian/SysVinit (/etc/rc?.d) initscript subsystem.
-Copyright (c) 2000,2001 Henrique de Moraes Holschuh <hmh@debian.org>
-
-Usage:
- invoke-rc.d [options] <basename> <action> [extra parameters]
-
- basename - Initscript ID, as per update-rc.d(8)
- action - Initscript action. Known actions are:
- start, [force-]stop, restart,
- [force-]reload, status
- WARNING: not all initscripts implement all of the above actions.
-
- extra parameters are passed as is to the initscript, following
- the action (first initscript parameter).
-
-Options:
- --quiet
- Quiet mode, no error messages are generated.
- --force
- Try to run the initscript regardless of policy and subsystem
- non-fatal errors.
- --try-anyway
- Try to run init script even if a non-fatal error is found.
- --disclose-deny
- Return status code 101 instead of status code 0 if
- initscript action is denied by local policy rules or
- runlevel constrains.
- --query
- Returns one of status codes 100-106, does not run
- the initscript. Implies --disclose-deny and --no-fallback.
- --no-fallback
- Ignores any fallback action requests by the policy layer.
- Warning: this is usually a very *bad* idea for any actions
- other than "start".
- --help
- Outputs help message to stdout
-
-EOF
-}
-
-printerror () {
- #
- # prints an error message
- # $* - error message
- #
-if test x${BEQUIET} = x ; then
- echo `basename $0`: "$*" >&2
-fi
-}
-
-formataction () {
- #
- # formats a list in $* into $printaction
- # for human-friendly printing to stderr
- # and sets $naction to action or actions
- #
-printaction=`echo $* | sed 's/ /, /g'`
-if test $# -eq 1 ; then
- naction=action
-else
- naction=actions
-fi
-}
-
-querypolicy () {
- #
- # queries policy database
- # returns: $RC = 104 - ok, run
- # $RC = 101 - ok, do not run
- # other - exit with status $RC, maybe run if $RETRY
- # initial status of $RC is taken into account.
- #
-
-policyaction="${ACTION}"
-if test x${RC} = "x101" ; then
- if test "${ACTION}" = "start" || test "${ACTION}" = "restart" ; then
- policyaction="(${ACTION})"
- fi
-fi
-
-if test "x${POLICYHELPER}" != x && test -x "${POLICYHELPER}" ; then
- FALLBACK=`${POLICYHELPER} ${BEQUIET} ${INITSCRIPTID} "${policyaction}" ${RL}`
- RC=$?
- formataction ${ACTION}
- case ${RC} in
- 0) RC=104
- ;;
- 1) RC=105
- ;;
- 101) if test x${FORCE} != x ; then
- printerror Overriding policy-rc.d denied execution of ${printaction}.
- RC=104
- else
- printerror policy-rc.d denied execution of ${printaction}.
- fi
- ;;
- esac
- if test x${MODE} != xquery ; then
- case ${RC} in
- 105) printerror policy-rc.d query returned \"behaviour undefined\",
- printerror assuming \"${printaction}\" is allowed.
- RC=104
- ;;
- 106) formataction ${FALLBACK}
- if test x${FORCE} = x ; then
- if test x${NOFALLBACK} = x ; then
- ACTION="${FALLBACK}"
- printerror executing ${naction} \"${printaction}\" instead due to policy-rc.d request.
- RC=104
- else
- printerror ignoring policy-rc.d fallback request: ${printaction}.
- RC=101
- fi
- else
- printerror ignoring policy-rc.d fallback request: ${printaction}.
- RC=104
- fi
- ;;
- esac
- fi
- case ${RC} in
- 100|101|102|103|104|105|106) ;;
- *) printerror WARNING: policy-rc.d returned unexpected error status ${RC}, 102 used instead.
- RC=102
- ;;
- esac
-else
- if test x${RC} = x ; then
- RC=104
- fi
-fi
-return
-}
-
-verifyparameter () {
- #
- # Verifies if $1 is not null, and $# = 1
- #
-if test $# -eq 0 ; then
- printerror syntax error: invalid empty parameter
- exit 103
-elif test $# -ne 1 ; then
- printerror syntax error: embedded blanks are not allowed in \"$*\"
- exit 103
-fi
-return
-}
-
-##
-## main
-##
-
-## Verifies command line arguments
-
-if test $# -eq 0 ; then
- printerror syntax error: missing required parameter, --help assumed
- dohelp
- exit 103
-fi
-
-state=I
-while test $# -gt 0 && test ${state} != III ; do
- case "$1" in
- --help) dohelp
- exit 0
- ;;
- --quiet) BEQUIET=--quiet
- ;;
- --force) FORCE=yes
- RETRY=yes
- ;;
- --try-anyway)
- RETRY=yes
- ;;
- --disclose-deny)
- RETURNFAILURE=yes
- ;;
- --query) MODE=query
- RETURNFAILURE=yes
- ;;
- --no-fallback)
- NOFALLBACK=yes
- ;;
- --*) printerror syntax error: unknown option \"$1\"
- exit 103
- ;;
- *) case ${state} in
- I) verifyparameter $1
- INITSCRIPTID=$1
- ;;
- II) verifyparameter $1
- ACTION=$1
- ;;
- esac
- state=${state}I
- ;;
- esac
- shift
-done
-
-if test ${state} != III ; then
- printerror syntax error: missing required parameter
- exit 103
-fi
-
-#NOTE: It may not be obvious, but "$@" from this point on must expand
-#to the extra initscript parameters, except inside functions.
-
-## sanity checks and just-in-case warnings.
-case ${ACTION} in
- start|stop|force-stop|restart|reload|force-reload|status)
- ;;
- *)
- if test "x${POLICYHELPER}" != x && test -x "${POLICYHELPER}" ; then
- printerror action ${ACTION} is unknown, but proceeding anyway.
- fi
- ;;
-esac
-
-## Verifies if the given initscript ID is known
-## For sysvinit, this error is critical
-if test ! -f "${INITDPREFIX}${INITSCRIPTID}" ; then
- printerror unknown initscript, ${INITDPREFIX}${INITSCRIPTID} not found.
- exit 100
-fi
-
-## Queries sysvinit for the current runlevel
-RL=`${RUNLEVEL} | sed 's/.*\ //'`
-if test ! $? ; then
- printerror "could not determine current runlevel"
- if test x${RETRY} = x ; then
- exit 102
- fi
- RL=
-fi
-
-## Running ${RUNLEVEL} to get current runlevel do not work in the boot
-## runlevel (scripts in /etc/rcS.d/), as /var/run/utmp contain
-## runlevel 0 or 6 (written at shutdown) at that point.
-if test x${RL} = x0 || test x${RL} = x6 ; then
- if ps -fp 1 | grep -q 'init boot' ; then
- RL=S
- fi
-fi
-
-## Handles shutdown sequences VERY safely
-## i.e.: forget about policy, and do all we can to run the script.
-## BTW, why the heck are we being run in a shutdown runlevel?!
-if test x${RL} = x0 || test x${RL} = x6 ; then
- FORCE=yes
- RETRY=yes
- POLICYHELPER=
- BEQUIET=
- printerror "-----------------------------------------------------"
- printerror "WARNING: 'invoke-rc.d ${INITSCRIPTID} ${ACTION}' called"
- printerror "during shutdown sequence."
- printerror "enabling safe mode: initscript policy layer disabled"
- printerror "-----------------------------------------------------"
-fi
-
-## Verifies the existance of proper S??initscriptID and K??initscriptID
-## *links* in the proper /etc/rc?.d/ directory
-verifyrclink () {
- #
- # verifies if parameters are non-dangling symlinks
- # all parameters are verified
- #
- doexit=
- while test $# -gt 0 ; do
- if test ! -L "$1" ; then
- printerror not a symlink: $1
- doexit=102
- fi
- if test ! -f "$1" ; then
- printerror dangling symlink: $1
- doexit=102
- fi
- shift
- done
- if test x${doexit} != x && test x${RETRY} = x; then
- exit ${doexit}
- fi
- return 0
-}
-
-# we do handle multiple links per runlevel
-# but we don't handle embedded blanks in link names :-(
-if test x${RL} != x ; then
- SLINK=`ls -d -Q ${RCDPREFIX}${RL}.d/S[0-9][0-9]${INITSCRIPTID} 2>/dev/null | xargs`
- KLINK=`ls -d -Q ${RCDPREFIX}${RL}.d/K[0-9][0-9]${INITSCRIPTID} 2>/dev/null | xargs`
- SSLINK=`ls -d -Q ${RCDPREFIX}S.d/S[0-9][0-9]${INITSCRIPTID} 2>/dev/null | xargs`
-
- verifyrclink ${SLINK} ${KLINK} ${SSLINK}
-fi
-
-testexec () {
- #
- # returns true if any of the parameters is
- # executable (after following links)
- #
- while test $# -gt 0 ; do
- if test -x "$1" ; then
- return 0
- fi
- shift
- done
- return 1
-}
-
-RC=
-
-###
-### LOCAL INITSCRIPT POLICY: Enforce need of a start entry
-### in either runlevel S or current runlevel to allow start
-### or restart.
-###
-case ${ACTION} in
- start|restart)
- if testexec ${SLINK} ; then
- RC=104
- elif testexec ${KLINK} ; then
- RC=101
- elif testexec ${SSLINK} ; then
- RC=104
- fi
- ;;
-esac
-
-# test if /etc/init.d/initscript is actually executable
-if testexec "${INITDPREFIX}${INITSCRIPTID}" ; then
- if test x${RC} = x && test x${MODE} = xquery ; then
- RC=105
- fi
-
- # call policy layer
- querypolicy
- case ${RC} in
- 101|104)
- ;;
- *) if test x${MODE} != xquery ; then
- printerror policy-rc.d returned error status ${RC}
- if test x${RETRY} = x ; then
- exit ${RC}
- else
- RC=102
- fi
- fi
- ;;
- esac
-else
- ###
- ### LOCAL INITSCRIPT POLICY: non-executable initscript; deny exec.
- ### (this is common sense, actually :^P )
- ###
- RC=101
-fi
-
-## Handles --query
-if test x${MODE} = xquery ; then
- exit ${RC}
-fi
-
-
-setechoactions () {
- if test $# -gt 1 ; then
- echoaction=true
- else
- echoaction=
- fi
-}
-getnextaction () {
- saction=$1
- shift
- ACTION="$@"
-}
-
-## Executes initscript
-## note that $ACTION is a space-separated list of actions
-## to be attempted in order until one suceeds.
-if test x${FORCE} != x || test ${RC} -eq 104 ; then
- if testexec "${INITDPREFIX}${INITSCRIPTID}" ; then
- RC=102
- setechoactions ${ACTION}
- while test ! -z "${ACTION}" ; do
- getnextaction ${ACTION}
- if test ! -z ${echoaction} ; then
- printerror executing initscript action \"${saction}\"...
- fi
-
- "${INITDPREFIX}${INITSCRIPTID}" "${saction}" "$@" && exit 0
- RC=$?
-
- if test ! -z "${ACTION}" ; then
- printerror action \"${saction}\" failed, trying next action...
- fi
- done
- printerror initscript ${INITSCRIPTID}, action \"${saction}\" failed.
- exit ${RC}
- fi
- exit 102
-fi
-
-## Handles --disclose-deny and denied "status" action (bug #381497)
-if test ${RC} -eq 101 && test x${RETURNFAILURE} = x ; then
- if test "x${ACTION%% *}" = "xstatus"; then
- printerror emulating initscript action \"status\", returning \"unknown\"
- RC=4
- else
- RC=0
- fi
-else
- formataction ${ACTION}
- printerror initscript ${naction} \"${printaction}\" not executed.
-fi
-
-exit ${RC}