return 1
}
+status_all() {
+ local SERVICE
+ cd ${SERVICEDIR}
+ for SERVICE in *; do
+ case "${SERVICE}" in
+ functions | halt | killall | single| linuxconf| kudzu)
+ ;;
+ *)
+ if ! is_ignored_file "${SERVICE}" \
+ && [ -x "${SERVICEDIR}/${SERVICE}" ]; then
+ if ! grep -qs "\Wstatus)" "$SERVICE"; then
+ #printf " %s %-60s %s\n" "[?]" "$SERVICE:" "unknown" 1>&2
+ echo " [ ? ] $SERVICE" 1>&2
+ continue
+ else
+ 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"
+ continue
+ else
+ #printf " %s %-60s %s\n" "[-]" "$SERVICE:" "NOT running"
+ echo " [ - ] $SERVICE"
+ continue
+ fi
+ fi
+ #env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" status
+ fi
+ ;;
+ esac
+ done
+}
+
VERSION="$(basename $0) ver. 0.91-pld"
USAGE="Usage: $(basename $0) < option > | --status-all | \
[ 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}
- for SERVICE in *; do
- case "${SERVICE}" in
- functions | halt | killall | single| linuxconf| kudzu)
- ;;
- *)
- if ! is_ignored_file "${SERVICE}" \
- && [ -x "${SERVICEDIR}/${SERVICE}" ]; then
- if ! grep -qs "\Wstatus)" "$SERVICE"; then
- #printf " %s %-60s %s\n" "[?]" "$SERVICE:" "unknown" 1>&2
- echo " [ ? ] $SERVICE" 1>&2
- continue
- else
- out=$(env -i 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"
- continue
- else
- #printf " %s %-60s %s\n" "[-]" "$SERVICE:" "NOT running"
- echo " [ - ] $SERVICE"
- continue
- fi
- fi
- #env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" status
- fi
- ;;
- esac
- done
+ status_all
exit 0
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