}
status_all() {
- local SERVICE
+ local SERVICE TYPE
cd ${SERVICEDIR}
for SERVICE in *; do
case "${SERVICE}" in
*)
if ! is_ignored_file "${SERVICE}" \
&& [ -x "${SERVICEDIR}/${SERVICE}" ]; then
+ if [ -f /etc/init/${SERVICE}.conf ]; then
+ # U for upstart
+ TYPE='U'
+ else
+ # S for SysVinit
+ TYPE='S'
+ fi
if ! grep -qs "\Wstatus)" "$SERVICE"; then
#printf " %s %-60s %s\n" "[?]" "$SERVICE:" "unknown" 1>&2
- echo " [ ? ] $SERVICE" 1>&2
+ echo " [ ? ]{$TYPE} $SERVICE"
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"
+ echo " [ + ]{$TYPE} $SERVICE"
continue
else
#printf " %s %-60s %s\n" "[-]" "$SERVICE:" "NOT running"
- echo " [ - ] $SERVICE"
+ echo " [ - ]{$TYPE} $SERVICE"
continue
fi
fi
echo "${VERSION}" >&2
exit 0
;;
+ --ignore-dependencies)
+ export SYSTEMCTL_IGNORE_DEPENDENCIES=1
+ shift
+ ;;
+ --skip-redirect)
+ export SYSTEMCTL_SKIP_REDIRECT=1
+ shift
+ ;;
--upstart)
USE_UPSTART=yes
shift
esac
done
-if [ -x "${SERVICEDIR}/${SERVICE}" ]; then
+if [ -x /bin/systemd_booted ] && /bin/systemd_booted; then
+ echo >&2 "Redirecting to /bin/systemctl ${ACTION} ${SERVICE}.service ${OPTIONS}"
+ exec /bin/systemctl ${ACTION} ${SERVICE}.service ${OPTIONS}
+elif [ -x "${SERVICEDIR}/${SERVICE}" ]; then
exec env -i USE_UPSTART=$USE_UPSTART LANG=$LANG PATH=$PATH TERM=$TERM "${SERVICEDIR}/${SERVICE}" ${ACTION} ${OPTIONS}
else
echo "${SERVICE}: unrecognized service" >&2