Domanda Come elencare tutti i servizi abilitati da systemctl?


Come posso elencare tutto enabled servizi da systemctl?

lo so systmctl elenca tutti i servizi ma mi piacerebbe avere solo il enabled una volta.


137
2017-07-05 18:17


origine


cosa intendi per abilitato? Intendi servizi in esecuzione? - Gen
@Gen abilitare un servizio è abbastanza diverso dall'avvio. Vedere man systemctl. - Jos
Solo per quello che sai, ho aggiornato la mia risposta.


risposte:


systemctl list-unit-files | grep enabled elencherà tutto abilitato quelli.

Se vuoi quali sono attualmente in esecuzione, hai bisogno systemctl | grep running.

Usa quello che stai cercando. Abilitato, non significa che sia in esecuzione. E correre non significa che sia abilitato. Sono due cose differenti.

Abilitato significa che il sistema eseguirà il servizio all'avvio successivo. Quindi, se abiliti un servizio, devi comunque avviarlo manualmente, o riavviarlo e verrà avviato.

In esecuzione significa che è attualmente in esecuzione, ma se non è abilitato, non si riavvierà al riavvio.


203
2017-07-05 18:52



fastidioso dover utilizzare uno strumento esterno (grep) per mostrare queste informazioni vitali. Ma grazie per averci mostrato la via :) - Felipe Alvarez
@FelipeAlvarez corretto. Ma è così che funziona Linux. Molti piccoli binari che funzionano bene l'uno con l'altro. systemctl fa ciò che viene richiesto, elenca i servizi. Non esiste un comando di filtro integrato in systemctl perché grep esiste già e può fare altrettanto bene con l'output di qualsiasi programma. È come è sempre stato :) - Dorian
Sono d'accordo e quindi dovrebbe essere. Ma, systemd già cerca di fare talmente tanto che mi chiedo perché non possa elencare i servizi abilitati? - Felipe Alvarez
systemctl | grep running non elencarmi nulla! Anche se qualcosa è in esecuzione è elencato solo per il suo stato come: enabled, disabled, masked, static - Cirelli94
Più semplice: systemctl list-unit-files --state=running - Will


man systemctl stati:

--state=

L'argomento dovrebbe essere un elenco di unità separate da virgola LOAD, SUB, o ACTIVE stati. Quando si elencano le unità, mostra solo quelle negli stati specificati. Uso --state=failed per mostrare solo unità guaste.

Spiegazione:

LOAD: Riflette se la definizione dell'unità è stata caricata correttamente.
ACTIVE: Lo stato di attivazione dell'unità di alto livello, vale a dire la generalizzazione di SUB.
SUB: Lo stato di attivazione dell'unità di basso livello, i valori dipendono dal tipo di unità.

Anche se puoi anche usarlo per mostrare solo enabled unità con:

systemctl list-unit-files --state=enabled

Se un'unità è enabled ciò significa che il sistema lo avvierà all'avvio. Anche se l'impostazione di qualcosa enabled in realtà non anche start quindi dovrai farlo manualmente o riavviare il sistema dopo averlo impostato enabled.


43
2017-07-05 18:58



Non risponde alla domanda; active ! = enabled. - Reinier Post
@ReinierPost: Non posso fare a meno che la pagina di manuale non fornisca informazioni, ho fornito la migliore risposta possibile con le informazioni che avevo. Come puoi vedere, c'è un'altra risposta che è accettata.
Lo so, ma è sbagliato (fuorviante) mantenere invariata la risposta sbagliata, e tutti sembrano farlo quando si tratta di questa particolare domanda (questa non è l'unica istanza). - Reinier Post
No, questa è una ragione per qualificare la tua risposta. - Reinier Post
Per abilitare e avviare allo stesso tempo: systemctl enable --now ... - Aurélien Ooms


  1. Per elencare tutti i systemd servizio che sono in state=active e sub=running

    systemctl list-units --type=service --state=running
    
  2. Per elencare tutti i systemd serice che sono in state=active e sub in esecuzione o in uscita

    systemctl list-units --type=service --state=active
    

Spero che questo risolva il problema.


34
2017-09-14 03:59



Sicuramente un miglioramento della risposta accettata. Grazie! - smac89


Per vedere i servizi 'abilitati' compresi quelli che sono ancora in upstart / init run:

systemctl list-unit-files --type service --state enabled,generated

Per vedere tutti i servizi attualmente in esecuzione:

systemctl list-units --type service --state running

1
2017-07-30 16:51