[ service_name [ command | --full-restart ] ]"
SERVICE=
+USE_UPSTART=
if [ -d /etc/rc.d/init.d ]; then
SERVICEDIR="/etc/rc.d/init.d"
cd /
while [ $# -gt 0 ]; do
case "${1}" in
- --help | -h | --h* )
+ --help | -h | --h* )
echo "${USAGE}" >&2
exit 0
;;
- --version | -V )
+ --version | -V )
echo "${VERSION}" >&2
exit 0
;;
+ --upstart)
+ USE_UPSTART=yes
+ shift
+ ;;
+ --no-upstart)
+ USE_UPSTART=no
+ shift
+ ;;
*)
if [ -z "${SERVICE}" -a $# -eq 1 -a "${1}" = "--status-all" ]; then
cd ${SERVICEDIR}
echo " [ ? ] $SERVICE" 1>&2
continue
else
- out=$(env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" status 2>&1)
+ out=$(env -i USE_UPSTART=$USE_UPSTART LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" status 2>&1)
if [ "$?" = "0" -a -n "$out" ]; then
#printf " %s %-60s %s\n" "[+]" "$SERVICE:" "running"
echo " [ + ] $SERVICE"
elif [ $# -eq 2 -a "${2}" = "--full-restart" ]; then
SERVICE="${1}"
if [ -x "${SERVICEDIR}/${SERVICE}" ]; then
- env -i LANG=$LANG PATH=$PATH TERM=$TERM "${SERVICEDIR}/${SERVICE}" stop
- env -i LANG=$LANG PATH=$PATH TERM=$TERM "${SERVICEDIR}/${SERVICE}" start
+ env -i USE_UPSTART=$USE_UPSTART LANG=$LANG PATH=$PATH TERM=$TERM "${SERVICEDIR}/${SERVICE}" stop
+ env -i USE_UPSTART=$USE_UPSTART LANG=$LANG PATH=$PATH TERM=$TERM "${SERVICEDIR}/${SERVICE}" start
exit $?
fi
elif [ -z "${SERVICE}" ]; then
SERVICE="${1}"
+ elif [ -z "${ACTION}" ]; then
+ ACTION="${1}"
else
OPTIONS="${OPTIONS} ${1}"
fi
done
if [ -x "${SERVICEDIR}/${SERVICE}" ]; then
- env -i LANG=$LANG PATH=$PATH TERM=$TERM "${SERVICEDIR}/${SERVICE}" ${OPTIONS}
+ exec env -i USE_UPSTART=$USE_UPSTART LANG=$LANG PATH=$PATH TERM=$TERM "${SERVICEDIR}/${SERVICE}" ${ACTION} ${OPTIONS}
else
echo "${SERVICE}: unrecognized service" >&2
exit 1