}
status_all() {
- local SERVICE TYPE
+ local SERVICE TYPE has_systemd has_upstart
+
+ if [ "$USE_SYSTEMD" != "no" ] && [ -x /bin/systemd_booted ] && /bin/systemd_booted; then
+ has_systemd=1
+ else
+ unset has_systemd
+ fi
+
+ if [ "$USE_UPSTART" != "no" ] && [ -x /sbin/initctl ]; then
+ has_upstart=1
+ else
+ unset has_upstart
+ fi
+
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
+ if [ "$has_systemd" ] && [ -f /lib/systemd/system/${SERVICE}.service ]; then
+ # D for SystemD
+ TYPE='D'
+ elif [ "$has_upstart" ] && [ -f /etc/init/${SERVICE}.conf ]; then
# U for upstart
TYPE='U'
else
TYPE='S'
fi
if ! grep -qs "\Wstatus)" "$SERVICE"; then
- #printf " %s %-60s %s\n" "[?]" "$SERVICE:" "unknown" 1>&2
- echo " [ ? ]{$TYPE} $SERVICE"
+ printf " %s %-60s %s\n" "$TYPE:[?]" "$SERVICE:" "unknown"
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 " [ + ]{$TYPE} $SERVICE"
+ printf " %s %-60s %s\n" "$TYPE:[+]" "$SERVICE:" "running"
continue
else
- #printf " %s %-60s %s\n" "[-]" "$SERVICE:" "NOT running"
- echo " [ - ]{$TYPE} $SERVICE"
+ printf " %s %-60s %s %s\n" "$TYPE:[-]" "$SERVICE:" "NOT running"
continue
fi
fi
- #env -i LANG="$LANG" PATH="$PATH" TERM="$TERM" "$SERVICEDIR/$SERVICE" status
fi
;;
esac
done
if is_systemd_service "${SERVICE}" "${ACTION}"; then
- echo >&2 "Redirecting to /bin/systemctl ${ACTION} ${SERVICE}.service ${OPTIONS}"
- exec /bin/systemctl ${ACTION} ${SERVICE}.service ${OPTIONS}
+ echo >&2 "Redirecting to /bin/systemctl --output=cat ${ACTION} ${SERVICE}.service ${OPTIONS}"
+ exec /bin/systemctl --output=cat ${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