Come elencare il servizio con SystemD

Come elencare il servizio con SystemD
Questo articolo potrebbe essere un corto di comando ma la stampa risultante è molto lunga.

Il comando dump

Se qualcuno ti chiede di mostrare l'intera configurazione del tuo sistema, usa il comando dump.

$ Systemd-Dump-Configuration-Items

Il file copre tutte le unità che hai sul sistema. Una volta che uno sviluppatore ha questo file disponibile, la persona passerà attraverso ciò che hai e cercherà di trovare i problemi che stai affrontando. Sopra e fatto. Tuttavia, non leggeresti questo articolo se avessi per lasciare che qualcun altro facesse tutto. Vediamo cosa puoi fare con un servizio alla volta e impara alcuni trucchi per filtrare i tuoi risultati.

La gerarchia di Systemd

Per diventare efficiente devi capire che, all'interno di SystemD, hai la gerarchia e puoi impostare ogni servizio in modo che dipenda e/o attendi altri servizi. I diversi modi in cui lo fai è evidente nei file di servizio. Le diverse dichiarazioni che hai sono "desideri", "richieste", "prima" e "dopo". Per un'analisi efficace, puoi usarli per vedere se la tua unità è inattiva a causa delle dipendenze. Puoi quindi rintracciare dove si trova il problema sottostante. Ecco un esempio di questo.

$ SystemCtl Elenco-dipendenze-prima XPRA.servizio

La stampa mostra le altre unità che XPRA.il servizio si basa. In questo caso le altre unità sono attive, quindi dobbiamo concentrarci sul perché l'unità stessa è rotta. L'esempio mancava un file di certificato.

L'uso più importante di questo è indagare se al tuo servizio mancano le dipendenze, usa il comando in questo modo.

$ SystemCtl Elenco-dipendenze Xringd

Il risultato è una lunga lista, organizzata comodamente in un albero e mostra tutti i servizi come verde o rosso se qualcosa non va. Puoi anche vedere le dipendenze nel file dei servizi. Apri il file utilizzando il tuo editor preferito o usa SystemCtl, che aprirà il file con l'editor predefinito.

Elenco dei servizi attivi

Quando vuoi indagare su un sistema, dovrai sapere come si adattano le unità. Per fare ciò, hai una serie di opzioni per la stampa dei dettagli. Puoi elencare quali sistemi sono impegnati, falliti e così via. Ancora più importante puoi elencare come vengono messi insieme, quale unità, servizio ecc. L'unità corrente dipende da. Il comando principale per farlo è SystemCtl, le opzioni sono utili per restringere il problema specifico.

Per ottenere l'uso corretto di SystemCtl, guarda attentamente le opzioni per il comando. Ci sono opzioni per scegliere esattamente ciò di cui hai bisogno, in particolare per quanto riguarda lo stato di qualsiasi servizio. Qui stiamo cercando servizi che abbiano problemi.

$ systemctl list-unit-files --type = servizio

Anche questo elenco è lungo e devi scorrere tutti i servizi per trovare quello che stai cercando. Con alcuni parametri in più, è possibile filtrare per uno o quelli disabilitati. Il comando seguente troverà tutte le unità mascherate.

$ systemctl list-unit-files --type = service --state = mascherato

I servizi mascherati sono bloccati in modo che altri servizi non possano avviarli, anche se l'altro servizio ne ha bisogno. Questo può essere utilizzato per assicurarsi che non si dispongono di servizi contrastanti. Comunemente, molti servizi sono mascherati dal gestore dei pacchetti quando rimuovi il pacchetto. È possibile rimuovere completamente il file di servizio se lo si desidera dopo aver rimosso un servizio. È anche possibile che debba distruggere molti servizi che desideri, quindi assicurati di sapere se hai bisogno dei servizi mascherati.

Alcuni servizi sono mascherati dai processi e non si intende sempre mascherare il servizio. Quando questo è successo al tuo sistema, la prima azione da intraprendere è quella di smascherare usando SystemCtl. Tuttavia, questo non è sempre possibile, quindi è necessario togliere il collegamento nella directory corretta. Nella maggior parte dei sistemi, questo sarà lib/systemd/system. Prima di farlo, controlla che il file sia effettivamente un link a /dev /null.

$ ls -l lib/systemd/system> | grep null

Quando sei sicuro di voler rimuovere questo link, rimuoverlo con RM o Unkink.

$ rm/lib/systemd/system/udisks2.servizio

Ora che sai come farlo, ascolta questo avvertimento: molte volte è necessario avere questo link lì dentro. Prendi LVM2 come esempio, è mascherato dall'operazione in modo che non interferisca con il nuovo sistema, dove LVM2 arriva come tanti piccoli servizi. Vedere il risultato di:

$ SYSTEMCTL STATO LVM2*

La rimozione del collegamento può causare il caos sul sistema perché LVM2 stesso ne ha bisogno per evitare conflitti. Questo è solo un esempio, quindi fai attenzione prima di andare avanti.

Conclusione

Quando vuoi elencare i servizi in SystemD, devi prima riflettere su ciò che stai cercando nella tua ricerca. Stai cercando un servizio di cui hai bisogno o vedi di avere troppi servizi. Ad ogni modo, devi adattare la tua domanda alle tue esigenze particolari. SystemD sembra inizialmente confuso ma quando guardi più da vicino, tutto usa un modo semplice per unificare l'avvio in modo che i servizi possano iniziare in parallelo in cui il sistema ne ha bisogno mentre è in grado di avere ogni servizio attendere il servizio specifico da cui dipendono.