Il mio problema:
Sto scrivendo uno script bash e in esso mi piacerebbe verificare se un determinato servizio è in esecuzione.
So come farlo manualmente, con $ service [service_name] status.
Ma (specialmente dal passaggio a systemd) che stampa un sacco di testo che è un po 'disordinato da analizzare. Supponevo che ci fosse un comando per gli script con output semplice o un valore di ritorno che posso controllare.
Ma cercare su Google produce solo una tonnellata di risultati "Oh, just ps aux | grep -v grep | grep [service_name]". Non può essere la migliore pratica, vero? Cosa succede se è in esecuzione un'altra istanza di quel comando, ma non una avviata dallo script SysV init?
O dovrei solo stare zitto e sporcarmi le mani con un po 'di pgrep?
inactiveoactivatingentrambisystemctl statusedsystemctl is-activeescono con 3. (come da systemd-241 ) Soluzione alternativa:systemctl show service | grep -qx ActiveStatus=activating