it-swarm.it

Perché `htop` mostra più processi di` ps`

In ps xf

26395 pts/78   Ss     0:00  \_ bash
27016 pts/78   Sl+    0:04  |   \_ Unicorn_Rails master -c config/Unicorn.rb                                           
27042 pts/78   Sl+    0:00  |       \_ Unicorn_Rails worker[0] -c config/Unicorn.rb                                        

In htop, si presenta come: htop showing multiple Unicorn_Rails lines

Perché htop mostra più processi di ps?

195
Cheng

Per impostazione predefinita, htop elenca ogni thread di un processo separatamente, mentre ps no. Per disattivare la visualizzazione dei thread, premere H oppure utilizzare il menu "Opzioni di impostazione/visualizzazione", "Nascondi thread di utenti". Questo inserisce la seguente riga nel tuo ~/.htoprc o ~/.config/htop/htoprc (in alternativa puoi inserirlo manualmente):

hide_userland_threads=1

(Anche hide_kernel_threads=1, attivato premendo K, ma è 1 per impostazione predefinita.)

Un'altra opzione utile è "Visualizza fili di colore diverso" nello stesso menu (highlight_threads=1 in .htoprc), che consente ai thread di essere visualizzati in un colore diverso (verde nel tema predefinito).

Nella prima riga del display htop, c'è una riga come “Attività: 377, 842 thr, 161 kthr; 2 in esecuzione ". Questo mostra il numero totale di processi, thread di userland, thread del kernel e thread in uno stato eseguibile. I numeri non cambiano quando si filtra il display, ma le indicazioni “thr” e “kthr” scompaiono quando si disattiva rispettivamente l'inclusione dei thread utente/kernel.

Quando vedi più processi che hanno tutte le caratteristiche in comune eccetto i campi PID e relativi alla CPU (Nice value, CPU%, TIME +, ...), è molto probabile che siano thread nello stesso processo.

Per me, su un sistema Arch Linux più o meno attuale, ps xf mi mostra solo i processi di proprietà del mio ID utente. htop mi mostra tutti i processi. Provare ps -ef per un elenco di tutti i processi, o forse ps -ejH per ottenere un elenco di relazioni figlio/genitore.

1
Bruce Ediger

htop mostra anche processi che sono terminati. Questo è fantastico, quindi puoi vedere i processi di breve durata e quali risorse potrebbero aver consumato. Se esci da htop e lo riavvii, vedrai che sono scomparsi. Non riesco a capire un modo per far sì che htop elimini i processi storici senza riavviare, quindi forse c'è un modo.

0
MikeB