Mostra i thread usando il comando PS in Linux

Mostra i thread usando il comando PS in Linux
Nei moderni sistemi operativi, i thread fungono da popolare astrazione di programmazione. Questi thread condividono risorse come file aperti, spazio e indirizzi di memoria quando ciò accade. Evita i canali di comunicazione inter-process (costosi IPC) e riduce il biforcimento sovraccarico. Di conseguenza, i thread eseguono un meccanismo di esecuzione concorrente.

In Linux, i fili sono anche noti come LWP o processi leggeri. Questi thread creati all'interno del programma hanno un "ID gruppo thread", lo stesso del PID del programma. C'è un singolo thread ID (TID) assegnato a ciascun thread. I thread Scheduler nel kernel Linux condividono alcune risorse, che sono processi standard.

Oltre a visualizzare le informazioni a livello di processo per impostazione predefinita, gli strumenti di comando classici, come Top e PS, possono anche visualizzare le informazioni a livello di thread. PS, Top e Htop sono comandi classici che mostrano le informazioni a livello di processo per impostazione predefinita. È inoltre possibile visualizzare le informazioni a livello di thread utilizzando i comandi precedenti. Questa guida passerà attraverso il comando PS e spiegherà come il comando PS mostra i thread in Linux.

Mostra i thread usando il comando PS in Linux

Con l'aiuto del comando PS, è possibile visualizzare i thread con molti filtri come PID (ID processo), nome dell'applicazione, ecc. Questo comando non funziona su BSD o macOS, poiché non esiste alcuna opzione per mostrare che il thread e il parametro -t hanno un significato diverso.

Cominciamo con il seguente comando nel terminale per elencare tutti i thread usando il comando PS:

PS -Elf

Mostra thread con PID

Ecco la sintassi standard dei comandi PS per visualizzare i thread usando i PID:

PS -t -p
PS -t p
-T Elenca tutti i thread
-P Specifica l'ID processo

È possibile visualizzare i thread per PID specifici. Segui la sintassi standard precedente e metti il ​​numero PID che si desidera conoscere i thread.

Ad esempio, usiamo il PID . La sintassi è la seguente:

PS -t -p 1904
PS -TP 1904

La colonna "Spid" mostra gli ID thread nell'output precedente. E la colonna "cmd" rappresenta i nomi dei thread.

Mostra thread con nome dell'applicazione

Ecco la sintassi standard del comando PS per visualizzare i thread usando il nome dell'applicazione:

ps -t -c
Opzione Descrizione
-T Elenca tutti i thread
-C Specifica il nome dell'applicazione

Ad esempio, scopriamo il thread relativo all'applicazione bash. Ecco il comando di base:

PS -t -c bash

Mostra thread con filtro

La sintassi standard del comando PS è di visualizzare i thread utilizzando il filtro come segue:

PS -e -t | grep
Opzione Descrizione
-T Elenca tutti i thread
-e Mostra tutti i processi
| Tuba l'uscita al comando successivo
grep Filtra il contenuto con l'aiuto di

È possibile filtrare il contenuto tramite il nome dell'applicazione. Digitare ed eseguire il seguente comando per realizzarlo:

PS -e -t | grep
PS -e -t | Grep Bash

Puoi anche filtrare i thread usando i loro PID:

PS -e -t | grep
PS -e -t | 1904

Nell'output precedente, potresti notare che tutti i thread hanno lo stesso PID. Significa che tutti i thread precedenti sono nello stesso processo.

Per trovare la somma di tutti i thread in esecuzione nel sistema, è possibile eseguire il seguente comando:

PS -EO NLWP | Tail -N +2 | awk 'num_threads += $ 1 end print num_threads'

È possibile utilizzare il "PGREP" o "PIDOF" per ottenere l'ID processo del nome del processo:

PS -O NLWP $ (PGREP )

O

PS -O NLWP $ (Pidof )

Conclusione

In Linux, i thread sono creati da un programma con "ID gruppo thread" come il PID. Esistono diversi modi per mostrare i thread in Linux usando vari comandi. In questa guida, abbiamo spiegato i diversi metodi per visualizzare i thread usando il comando PS.

C'è un vantaggio nell'uso del comando PS perché ti mostra tutti i dettagli che desideri. È possibile filtrare e visualizzare i thread usando i loro PID, il nome dell'applicazione, ecc. È inoltre possibile monitorare il conteggio dei thread tramite il comando PS.