GNU/Linux >> Linux Esercitazione >  >> Linux

Decluttering la gestione dei processi con ps o systemd

Una delle mie attività meno preferite come ingegnere di supporto era cercare di setacciare il mucchio di detriti che è il ps comando. Inevitabilmente, un processo Java si guastava e si bloccava su una porta che dovevo aprire per riavviare un servizio. Il servizio verrebbe visualizzato come attivo , ma non c'era alcuna funzionalità. Questa situazione creava confusione per i tecnici più giovani ed era qualcosa che mi è stato chiesto di correggere molte, molte volte trovando il processo che era bloccato e uccidendolo. Ci sono anche momenti in cui potrebbe essere necessario vedere se un particolare processo è in esecuzione o scoprire se un processo ha generato processi figlio. Questi scenari sono in cui la comprensione dei gruppi di controllo sarà di grande aiuto. I gruppi di controllo, a livello di base, organizzano i processi in base al genitore e quindi organizzano i processi in una gerarchia.

Qui esamineremo due modi per migliorare il ps standard comando che la maggior parte delle persone usa. So che molte persone accoppiano ps con grep , e come la torta di noci pecan e Noah's Mill, approvo pienamente questa pratica. Ti incoraggio anche a controllare i seguenti due metodi, in quanto possono rendere un po' più semplice la comprensione delle gerarchie dei processi.

Metodo uno

Il primo metodo è un ps standard comando con l'albero dei processi abilitato. Quando esegui questo comando: 

[root@fed31 ~]# ps xawf -eo pid,user,cgroup,args

il seguente output potrebbe essere il risultato:

Questo output è stato abbreviato in quanto è molto dettagliato. Tuttavia,  ricevi una grande quantità di informazioni con questo comando. Da sinistra a destra, abbiamo il PID, USER, CGROUP e COMMAND.

Trovo che questo output sia un ottimo modo per vedere esattamente quale processo appartiene a quale lavoro principale. È anche in un formato abbastanza intuitivo. Il comando stesso può essere molto da digitare su base regolare, quindi consiglio di impostare un alias di shell. Per ulteriori informazioni su come creare un alias, vedere il mio articolo sull'argomento qui. Per ora, qualcosa del genere sarebbe appropriato: 

alias pscgroup='ps xawf -eo pid,user,cgroup,args'

Metodo due

La prossima opzione che esamineremo è un systemd utilità. Questo metodo è un modo ancora migliore, a mio modesto parere, per vedere quale lavoro appartiene a quale processo genitore o proprietario. Quando digiti questo: 

[root@fed31 ~]# systemd-cgls

il risultato potrebbe essere simile a questo:

Anche in questo caso, lo screenshot è stato accorciato a causa della lunghezza dell'output. In questa versione, puoi vedere più facilmente quale processo appartiene a quale utente, inoltre ogni processo mostra i suoi processi figlio come sottoinsiemi di informazioni. Questo metodo è un modo semplicissimo per vedere l'organizzazione dei processi e trovare rapidamente la proprietà.

Questi due metodi di visualizzazione dei processi mi hanno aiutato a capire cosa possiede cosa. Spero che troverai utili anche questi!

[Vuoi provare Red Hat Enterprise Linux? Scaricalo ora gratuitamente.]


Linux
  1. Come controllare l'utilizzo della memoria del processo con il comando pmap di Linux

  2. Comando Nohup con esempi

  3. Comando JQ in Linux con esempi

  4. Come trovare il processo con il numero massimo di descrittori di file?

  5. Perché eseguire un comando shell Linux con "&"?

15 Comando Linux ps con esempi

Comando Killall in Linux con esempi

Comando Wait in Linux spiegato con esempi

Gestione dei processi Linux migliorata con htop

Gestione di cartelle zippate o compresse con terminale Linux

Comando della cronologia con esempi