Usando il comando PS in Linux

Usando il comando PS in Linux
IL ps Il comando viene utilizzato per mostrare lo stato dei processi come un'istantanea. Contrariamente a Microsoft Windows che mostra lo stato dei processi in live view. In Linux, se vogliamo una vista live dei processi dobbiamo usare il comando in alto. Questo tutorial spiega come utilizzare il comando PS in Linux.

Iniziare con il comando PS in Linux:

Per iniziare, eseguiamo il comando ps senza parametri. In questo caso, il comando PS mostrerà solo i processi eseguiti dall'utente root.

$ ps

Capire il ps Output del comando:

Le 4 colonne visualizzate contengono le seguenti informazioni:

  • PID: ID processo, mostra il numero di identificazione del processo.
  • Tty: Identifica il terminale da cui è stato eseguito il processo.
  • TEMPO: Mostra il tempo del processore occupato dal programma.
  • CMD: Mostra il comando utilizzato per avviare il processo.

Se vuoi mostrare tutti i processi degli utenti, è necessario aggiungere il flag -ascia come mostrato di seguito:

$ ps -ax

La bandiera -UN Utilizzato nello screenshot seguente indica PS per visualizzare tutti i processi tranne sia i leader della sessione che i processi non associati ai terminali. La bandiera -X mostra i processi senza un terminale di controllo e processi con un terminale di controllo.

Nota: Un leader della sessione è un processo il cui PID e SID sono gli stessi.

La maggior parte degli utenti di Linux eseguono PS -Axu. La bandiera -u mostra l'utente efficace di un processo. Un utente efficace è l'utente le cui autorizzazioni di accesso al file vengono utilizzate dal processo (questo argomento è spiegato nel setuid, setGID e BIT appiccicosi).

Come puoi vedere nello screenshot qui sotto, aggiungendo il -u Flag Nuove colonne verranno visualizzate.

$ ps -axu

Le colonne visualizzano le seguenti informazioni:

UTENTE: mostra l'utente efficace, le cui autorizzazioni vengono utilizzate per eseguire il processo.

%PROCESSORE: Questa colonna visualizza il calcolo del tempo utilizzato dal processo diviso per il momento in cui il processo è in esecuzione.

%Mem: Questa colonna mostra la RSS (dimensione del set di residenti) divisa per la memoria usata. Questa colonna non è consigliabile per gli utenti di verificare l'utilizzo della memoria perché l'importo della memoria utilizzato non è esatto. Se si desidera controllare l'uso della memoria per processo, puoi leggere come controllare l'utilizzo della memoria per processo su Linux.

VSZ: Mostra la memoria virtuale utilizzata dal processo.

RSS: Dimensione del set di residenti. Mostra la memoria occupata da un processo nella memoria RAM (non in swap).

INIZIO: Questa colonna mostra quando il processo è iniziato.

TEMPO: L'utilizzo della CPU di processo o thread, incrementato ogni volta che l'orologio del sistema si toccano e il processo o il thread è disponibile in esecuzione

COMANDO: Questo è lo stesso della colonna CMD precedentemente spiegata.

STATISTICA: Le statistiche della colonna mostrano gli stati del codice per il processo. Le possibili statistiche del codice spiegate nella pagina PS Man sono:

  • D sonno ininterrotto (di solito io)
  • IO Thread di kernel inattivo
  • R in esecuzione o eseguibile (in coda di esecuzione)
  • S Sleep interruzione (in attesa di completare un evento)
  • T fermato dal segnale di controllo del lavoro
  • T fermato dal debugger durante la traccia
  • X morto (non dovrebbe mai essere visto)
  • Z processo defunto ("zombi"), terminato ma non raccolto dal suo genitore
  • < priorità alta (non piacevole per gli altri utenti)
  • N Priorità bassa (piacevole per gli altri utenti)
  • L ha pagine bloccate in memoria (per IO in tempo reale e personalizzato)
  • S leader della sessione
  • l è multi-thread (usando clone_thread, come fanno le phread NPTL)
  • + è nel gruppo di processo in primo piano.

Mostrando uno specifico processi utente utilizzando PS:

Se si desidera controllare solo i processi eseguiti da un utente specifico (utente efficace), è possibile utilizzare -u bandiera; spiegato in precedenza senza bandiere aggiuntive, seguite dal nome utente di cui si desidera elencare i processi. Ciò mostrerà l'utente efficace, le cui autorizzazioni vengono utilizzate per eseguire il processo, ma non l'utente che ha chiamato il processo (utente reale).

Nota: Se non sai quali sono gli utenti efficaci e reali, la spiegazione è alla fine di questa sezione.

Il seguente esempio mostra i processi per l'utente Linuxhint Come utente efficace.

$ PS -U Linuxhint

Se invece di controllare gli utenti efficaci si desidera controllare i processi eseguiti come utenti reali, utilizzare un capitale U Invece.

$ PS -U Linuxhint

Utenti efficaci contro utenti reali:

L'ID utente reale rappresenta l'utente che esegue un processo. Ad esempio, l'utente che chiama un programma nel terminale. L'ID utente efficace rappresenta l'utente le cui autorizzazioni vengono utilizzate per eseguire un programma. Ciò è applicabile, ad esempio, quando un utente esegue un programma con Setuid. Lo stesso accade con i gruppi e possiamo identificare gruppi efficaci e reali. Se non capisci questo argomento, puoi leggere il tutorial setuid e setgid.

Mostrando uno specifico processi utente utilizzando PS:

Se vuoi mostrare veri processi di gruppo, una capitale -G seguito dal gruppo lo mostrerà.

$ PS -G ROOT

Se vuoi mostrare gruppi efficaci, aggiungi il -G bandiera seguita dal gruppo efficace.

$ PS -G ROOT

Mostrando i processi gerarchia:

La bandiera -foresta consente di visualizzare i processi che mostrano la gerarchia e i processi associati come mostrato nello screenshot seguente.

$ PS -Axu -Forest

Mostra i processi di tty:

È inoltre possibile utilizzare il comando PS per visualizzare quali processi sono stati avviati da un terminale specifico o a quali processi terminali appartengono. Puoi implementarlo aggiungendo il -T Flag seguito dal TTY che si desidera identificare, come mostrato nell'esempio seguente.

$ ps -t tty1

Mostrare ulteriori informazioni sui processi:

Esistono diverse versioni PS: versioni UNIX, BSD e GNU. Questo tutorial è ottimizzato per la versione UNIX. È possibile visualizzare la versione BSD con ulteriori informazioni aggiungendo il -l Flag come mostrato nello screenshot seguente. Aggiungerà nuove colonne con ulteriori informazioni.

$ ps -l

Come puoi vedere, le nuove colonne sono UID, PPID, PRI, NI e WCHAN.

Uid: Mostra l'ID dell'utente che ha eseguito il processo.

PPID: Mostra il processo genitore PID.

PRI: Mostra la priorità del processo (kernel)

Ni: Mostra la priorità del processo (spazio utente)

Wchan: Mostra il nome della funzione del kernel in cui i processi dormono.

Ce ne sono molto di più sul comando PS che puoi leggere sulla pagina Man o su un suggerimento di Linux tutorial successivo verrà rilasciato sul comando PS per gli utenti avanzati.

Conclusione:

Il comando PS è un comando di base che ogni utente Linux deve sapere come applicare e comprendere. Imparare a usare e interpretare l'output è un modo reale per incorporare ulteriori conoscenze, come utenti e gruppi efficaci e reali.

Come mostrato in questo tutorial, qualsiasi livello utente Linux può facilmente imparare a implementare questo comando con tutti i flag e le opzioni disponibili.

Spero che questo tutorial sia stato utile. Continua a seguire il suggerimento Linux per ulteriori suggerimenti e tutorial Linux.