Pode parecer um pouco estranho, mas não . Para ser mais exato, ele exibe apenas [?]
status desconhecidos no erro padrão (além de outras mensagens de erro).
Você pode ver o script em /usr/sbin/services
. A parte relevante é a seguinte (linhas 68--98):
if [ -z "${SERVICE}" -a $# -eq 1 -a "" = "--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
exit 0
A linha echo " [ + ] $SERVICE"
não é impressa no erro padrão e, portanto, a variável [ - ]
Você pode testar facilmente a suposição acima executando: services --status-all 2>/dev/null
. Se você tiver algum serviço em execução que suporte o comando status , ele será listado.