Ottieni un'istantanea dei processi in esecuzione sul tuo computer Linux con il ps
comando. Individua i processi per nome, utente o anche terminale con tutti i dettagli di cui hai bisogno. Ti mostriamo come.
Gestione dei processi in Linux
Il cuore di tutti i sistemi operativi Linux e Unix-like è il kernel. Tra le sue molte responsabilità c'è l'allocazione delle risorse di sistema, come la RAM e il tempo della CPU. Questi devono essere combinati in tempo reale in modo che tutti i processi in esecuzione ottengano la loro giusta quota, secondo la priorità di ogni compito.
Qualche volta, le attività possono andare in crash, entrare in un circuito chiuso o non rispondere per altri motivi. Oppure possono continuare a correre, ma consumano troppo tempo CPU o RAM, o comportarsi in modo altrettanto antisociale. Qualche volta, le faccende domestiche dovrebbero essere rimosse come misericordia per tutte le persone coinvolte. Il primo passo. Decisamente, è identificare la procedura in questione.
Ma forse non hai affatto problemi con i compiti o le prestazioni. Forse sei solo curioso di sapere quali processi sono in esecuzione all'interno del tuo computer e vorresti dare un'occhiata sotto il cofano. il ps
Il comando soddisfa entrambe le esigenze. te lo regala un'istantanea di ciò che sta accadendo all'interno del tuo computer “Ora.”
ps
è abbastanza flessibile da darti esattamente le informazioni di cui hai bisogno esattamente nel formato che desideri. In realtà, ps
hai molte opzioni. Le alternative qui descritte copriranno le esigenze più comuni. Se vuoi approfondire ps
di quello che abbiamo preso in questo post, scoprirai che la nostra introduzione rende la pagina man più facile da digerire.
Processi di quotazione
Il modo più semplice per usare ps
è accenderlo senza parametri:
ps
ps
visualizza un elenco di processi avviati dall'utente che ha eseguito il comando.
Le quattro colonne sono:
- PID: Il numero identificativo della procedura.
- TTY: Il nome della console in cui l'utente è connesso.
- TEMPO METEREOLOGICO: La quantità di tempo di elaborazione della CPU utilizzata dalla procedura.
- CMD: Il nome del comando che ha avviato la procedura
Procedura di quotazione per tutti gli utenti
aggiungendo il -e
(seleziona tutti i processi) possiamo fare ps
elencare i processi che sono stati avviati da tutti gli utenti, non solo l'utente che esegue il ps
comando. Perché questa sarà una lunga lista, lo stiamo integrando in less
.
ps -e | meno
L'elenco dei processi viene reindirizzato a less
.
Abbiamo molte più voci nell'elenco, ma vediamo le stesse quattro colonne di prima. Voci con un punto interrogativo ?
a TTY
La colonna non è iniziata da una finestra di terminale.
Mostra gerarchia dei processi
Qualche volta, puoi aiutare a risolvere un ostacolo o identificare una procedura particolare se puoi vedere quali processi hanno avviato altri processi. Noi usiamo il -H
(gerarchia) possibilità di farlo.
ps -eH | meno
Il rientro indica quali processi sono genitori di quali altri processi.
Per aggiungere un po' più di chiarezza, possiamo chiedere ps
per aggiungere qualcosa ASCII linee e disegnare la gerarchia come un albero. L'opzione per farlo è la --forest
opzione.
ps -eH --foresta | meno
Ciò semplifica il monitoraggio di quali processi sono i genitori di altri processi..
Elenco dei processi per nome
Puoi reindirizzare l'output da ps
attraverso grep
per elencare le voci che hanno nomi che corrispondono al termine di ricerca. Qui cerchiamo le voci che corrispondono al termine di ricerca “Firefox”:
ps -e | grep firefox
Per questo caso, l'output è un unico input per la procedura che ci interessa. Decisamente, se avessimo lanciato più istanze di Firefox, ci sarebbe più di un elemento restituito nell'elenco.
Mostra più colonne nell'output
Per aggiungere più colonne all'output, usa el -f
opzione (formato completo).
ps -ef | meno
Un ulteriore set di colonne è incluso nell'output di ps
.
Le colonne sono:
- UID: ID utente del titolare di questa procedura.
- PID: L'ID della procedura.
- PPID: ID della procedura principale della procedura.
- C: Il numero di bambini che ha la procedura.
- TEMPO METEREOLOGICO: Ora di inizio. Nel momento in cui è iniziata la procedura.
- TTY: Il nome della console in cui l'utente è connesso.
- TEMPO METEREOLOGICO: La quantità di tempo di elaborazione della CPU utilizzata dalla procedura.
- CMD: Il nome del comando che ha avviato la procedura.
Usando il -F
(formato extra completo) possiamo ottenere ancora più colonne:
ps -eF | meno
Le colonne che otteniamo questa volta richiedono che lo schermo scorra lateralmente per rivelarle tutte.
Quando si preme il tasto “Freccia destra”, lo schermo scorre a sinistra.
Le colonne che otteniamo ora sono:
- UID: ID utente del titolare di questa procedura.
- PID: L'ID della procedura.
- PPID: ID della procedura principale della procedura.
- C: Il numero di bambini che ha la procedura.
- SZ: Dimensioni dell'immagine della procedura in pagine RAM.
- RSS: Dimensione del set residente. Questa è la memoria fisica invariata utilizzata dalla procedura.
- PSR: Il responsabile a cui è affidata la procedura.
- TEMPO METEREOLOGICO: Ora di inizio. Nel momento in cui è iniziata la procedura.
- TTY: Il nome della console in cui l'utente è connesso.
- TEMPO METEREOLOGICO: La quantità di tempo di elaborazione della CPU utilizzata dalla procedura.
- CMD: Il nome del comando che ha avviato la procedura.
Elenco dei processi per ID procedura
Una volta trovato l'ID della procedura di tuo interesse, puoi usarlo con il ps
comando per elencare i dettagli di quella procedura. Utilizzare il -p
(scegli per ID procedura) opzione per raggiungere questo obiettivo:
ps -p 3403
I dettagli di questa procedura sono elencati:
Non sei limitato a un ID di procedura. Puoi fornire un elenco di ID di processo, separati da spazi.
Elenco dei processi per comando
il -C
L'opzione (comando) ti permette di cercare una procedura usando il nome del comando. In altre parole, il nome del comando che ha avviato la procedura. Questo è leggermente diverso dalla riga di comando, che può includere nomi di percorso e parametri o opzioni.
ps -C otturatore
Sono elencati i dettagli della procedura dell'otturatore.
Elenco dei processi di proprietà di un utente
Per visualizzare i processi che sono di proprietà di un particolare utente, usa el -u
(lista degli utenti) opzione:
ps -u mary
Vengono mostrati i processi di proprietà dell'account utente mary.
Elenco dei processi per terminale
Per visualizzare i processi associati a un TTY, usa el -t
(scegli da TTY) opzione. Usato senza un numero TTY, il -t
L'opzione riporta i processi associati alla finestra del terminale corrente.
tty
ps -t
il tty
comando segnala che questo è pseudo-ticker 0. I processi elencati da ps -t
sono tutti associati a TTY pts/0
.
Se passiamo un numero TTY sulla riga di comando, dovremmo ottenere un rapporto dei processi associati a quel TTY.
ps -t 1
Questa volta tutti i processi sono associati a TTY pts/1
.
IMPARENTATO: Che cos'è un TTY in Linux?? (e come usare il comando tty)
Scegli le colonne da visualizzare
Con il -o
(formato) puoi scegliere le colonne che vuoi includere nell'output di ps
. Le colonne sono specificate per nome. La lista (lungo) i nomi delle colonne possono essere visti in pagina man nella sezione intitolata “Identificatori di formato standard”. In questo esempio, scegliamo di avere il tempo della CPU (pcpu
) e la riga di comando con argomenti (args
) incluso nell'output.
ps -e -o pcpu,argomenti | meno
L'output include solo le nostre due colonne richieste.
Ordina l'output per colonne
Puoi ordinare l'output per te usando il --sort
opzione. Ordiniamo l'output in base alla colonna CPU:
ps -e -o pcpu,argomenti --sort -pcpu| meno
Il copione “-
” su di lui pcpu
Il parametro sort fornisce un ordinamento decrescente.
Per vedere i dieci processi più intensivi per la CPU, incanalare la presa attraverso il head
comando:
ps -e -o pcpu,argomenti --sort -pcpu | testa -10
Otteniamo un elenco ordinato e troncato.
Se aggiungiamo più colonne al nostro schermo, possiamo ordinare per più colonne. Aggiungiamo il pmem
colonna. Questa è la percentuale della memoria del computer utilizzata dalla procedura.. Senza copione o con altro ” +
“, L'ordinamento è crescente.
ps -e -o pcpu,pmem,argomenti --sort -pcpu,pmem | testa -10
Otteniamo la nostra colonna aggiuntiva e la nuova colonna è inclusa nella classificazione. La prima colonna è ordinata prima della seconda colonna, e la seconda colonna è ordinata in ordine crescente perché non abbiamo inserito un trattino pmem
.
Rendiamolo un po' più utile e aggiungiamo la colonna ID della procedura (pid
) così possiamo vedere il numero di procedura di ogni procedura nel nostro elenco.
ps -e -o pid,pcpu,pmem,argomenti --sort -pcpu,pmem | testa -10
Ora possiamo identificare i processi.
Uccidi i processi per ID procedura
Abbiamo coperto una gamma di alternative per identificare i processi, compreso il nome, il comando, utente e terminale. Copriamo anche le alternative per identificare i processi in base ai loro attributi dinamici, come l'utilizzo della CPU e della memoria.
Quindi, in un modo o nell'altro, possiamo identificare i processi in esecuzione. Conoscere il tuo ID procedura, noi possiamo (se richiesto) eliminare uno qualsiasi di questi processi utilizzando il kill
comando. Se volessimo uccidere la procedura 898, useremmo questo formato:
sudo kill 898
Se tutto va bene, la procedura finisce in silenzio.
IMPARENTATO: Come uccidere i processi dal terminale Linux
Uccidi i processi per nome
il pkill
il comando ti abilita uccidi i processi per nome. Assicurati di aver individuato la procedura corretta! Questo comando completerà la procedura superiore.
sudo pkill top
Un'altra volta, non avere notizie è una buona notizia. La procedura si conclude in silenzio.
Uccidi più processi per nome
Se disponi di più copie di una procedura in esecuzione, o una procedura ha generato più processi figlio (come può fare google chrome?), Come puoi rimuoverli?? È altrettanto facile. Noi usiamo il killall
comando.
Abbiamo due copie di top running:
ps -e | grip in alto
Possiamo finire entrambi con questo comando:
sudo killall in alto
Se non c'è risposta, nessun problema, quindi entrambi i processi sono terminati.
Ottieni una vista dinamica con la parte superiore
L'uscita di ps
è una vista istantanea. Non si attualizza. Per avere una visione aggiornata dei tuoi processi, Utilizzare il top
comando. Fornisce un vista dinamica dei processi in esecuzione sul tuo computer. Lo schermo è diviso in due parti. C'è un'area dashboard nella parte superiore dello schermo composta da righe di testo e una tabella nella parte inferiore dello schermo composta da colonne.
Cominciare top
con questo comando:
superiore
Le colonne contengono informazioni sui processi:
- PID: Identificazione della procedura
- NOME UTENTE: Nome del titolare della procedura
- PR: Procedura prioritaria
- NI: Il buon valore della procedura
- VIRT: Memoria virtuale utilizzata dalla procedura
- RES: Memoria residente utilizzata dalla procedura
- SHR: Memoria condivisa utilizzata dalla procedura
- S: Stato della procedura. Vedi l'elenco sottostante dei valori che questo campo può assumere
- %UPC: la percentuale di tempo CPU utilizzata dalla procedura dall'ultimo aggiornamento
- % MEM: percentuale di memoria fisica utilizzata
- TEMPO METEREOLOGICO +: tempo CPU totale utilizzato dall'attività in centesimi di secondo
- COMANDO: nome del comando o riga di comando (nome e parametri della riga di comando) Se non riesci a vedere la colonna dei comandi, premere il tasto "Freccia destra".
Lo stato della procedura può essere uno dei seguenti:
- D: Sonno ininterrotto
- R: Di fretta
- S: Addormentato
- T: Tracciamento (fermato)
- INSIEME A: Zombie
Premi il tasto “Q” Non è necessario aggiungere l'estensione top
.
IMPARENTATO: 37 Comandi importanti di Linux che dovresti conoscere
Prima di uccidere una procedura
Assicurati che sia quello che stai cercando e verifica che non ti dia problemi. In particolare, È importante evidenziare consultare il -H
(gerarchia) e --forest
opzioni per assicurarti di non avere processi figlio importanti che hai dimenticato.