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.]