Posso fare in modo che systemd mostri lo stato del servizio dopo l'avvio o l'arresto di un servizio?


8

Sto cercando di fare in modo che systemd faccia ciò che farebbero gli script init.d, mostrando automaticamente lo stato di un servizio dopo aver ricevuto manualmente un comando per l'avvio o l'arresto. Questo è in qualche modo possibile?

purtroppo systemd viene visualizzato di nuovo poiché viene eseguito in background e quindi è necessario eseguire un secondo comando per mostrare lo stato, l'avvio o l'arresto potrebbero non aver funzionato, systemd non te lo dirà a meno che non lo si chieda e ti lasci beato ignorante.

vale a dire. Sto cercando di ottenere

service nginx status

per eseguire automaticamente dopo aver fatto un

service nginx start

o

service nginx restart

(o nel sistema cerebrale danneggiato, systemctl start nginx.service)


1
Uso i comandi "cervello danneggiato" (mi piacciono!). In realtà non dicono nulla quando tutto va bene, ma ti faranno sapere quando qualcosa non riesce. Almeno così è su openSUSE 13.1. Sei sicuro che siano "silenziosi" quando falliscono? Ci hai provato systemctl start nginx.service && echo SUCCESS || echo failure?
Huygens,

2
@Huygens non conta sul fatto che systemd sia in grado di rilevare tutti i guasti, ci possono essere sicuramente guasti silenziosi o avvisi. I processi vengono avviati in background e systemd esce dal controllo, non è affatto come init.d Vedo che ciò avviene in modo coerente con la creazione del file PID non riuscita. Ottenere uno stato dopo un avvio o un riavvio manuale è un must assoluto con systemd (e punto della mia domanda).
ck_

grazie per il chiarimento, ho imparato qualcosa qui! Non vedo l'ora di trovare una risposta a questa domanda!
Huygens,

La sintassi braindead è di servizio uno perché a differenza della sintassi systemd molto migliore non ti consente di operare su più servizi contemporaneamente: systemctl stop service1 service2 service3
god

1
Se vedi ancora la stessa incoerenza quando hai verificato lo stato di uscita systemctlcome suggerito da @Huygens, il problema potrebbe essere che si nginx.serviceavvia correttamente ma si blocca in seguito. Prova a controllare il diario o nei registri di Nginx.
Amir,

Risposte:


1

Non esiste un comando integrato per il tuo caso d'uso, quindi dovrai creare un alias per la tua shell preferita o un banale wrapper di script.


0

Per rendere systemd più "dettagliato", aggiungi / decommenta le seguenti righe nel tuo /etc/systemd/journald.confe poi riavvia:

ForwardToConsole=yes
MaxLevelConsole=debug
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.