Sconto del 50%. tutti i piani, tempo limitato. A partire da $2.48/mo
10 minuti rimasti
Server e sistema operativo

Padroneggiare la gestione dei processi – Comando Linux ps aux

Ada Lovegood By Ada Lovegood 10 minuti di lettura Aggiornato l'11 luglio 2024
comando linux ps aux

Hai almeno altre cinque schede aperte sul tuo browser, cercando di trovare la risposta a un problema di Linux che hai riscontrato?
Questo comportamento non è specifico per te o per gli esseri umani in generale. Anche le macchine sono multitasking. E proprio come te, anche Linux è multitasker e ha diversi processi in corso contemporaneamente. Che tu sia uno sviluppatore che utilizza Linux a livello professionale o un normale utente che lavora con Linux per le tue attività quotidiane, dovresti essere in grado di comprendere questi processi paralleli per mantenere il pieno controllo sul tuo sistema. La gestione dei processi e il controllo del sistema sono aspetti essenziali dell'esecuzione di un sistema Linux.

Per gestire in modo efficiente i processi in esecuzione sul sistema, vedere cosa sta succedendo in tempo reale, avere un’idea generale di tutti i processi in background e controllare le risorse del sistema, è necessaria una conoscenza tecnica della gestione dei processi. Il comando ps aux è un comando potente che svolge un ruolo fondamentale nella gestione dei processi e nel controllo del sistema. In questo post impareremo di più sul comando ps aux e sui suoi casi d'uso. Tratteremo anche i fondamenti di come funzionano i processi Linux.

Comprendere la gestione dei processi in Linux

Quando lavoriamo con Linux, la maggior parte delle nostre interazioni con il sistema avvengono sotto forma di comandi. In Linux, un processo è l'esecuzione di un comando. La gestione dei processi Linux implica la manipolazione dei processi avviati da un comando. È possibile terminare un processo, avviarlo o riprendere i processi che sono stati terminati. Puoi anche manipolare i comandi in corso.

Esistono due tipi di processi Linux:

  • Processi in primo piano
  • Processi in background

Processi in primo piano di Linux

Un processo in primo piano è un processo che viene eseguito attivamente e in genere richiede un'interazione costante e in tempo reale con l'utente. Quando un processo in primo piano è in azione, l'esecuzione degli altri processi viene sospesa. Quindi, non puoi eseguire altri comandi. Un processo in primo piano riceve input dalla tastiera come input standard o stdin. Per evitare ulteriore confusione, stdin e stdout sono flussi di dati Linux insieme a stderr. Fondamentalmente è il modo in cui l'utente interagisce con il processo e fornisce i dati per esso. Esiste un output standard o stdout prodotto dal processo in base alla sua funzionalità e all'input. I processi in primo piano sono la modalità di esecuzione predefinita in Linux.

Processi in background di Linux

I processi in background sono l’esatto opposto dei processi in primo piano poiché non richiedono l’interazione dell’utente e non occupano esclusivamente l’intero spazio del terminale, consentendo l’esecuzione di altri processi. Anche il tipo di input e output dei processi in background è diverso. Di solito non accettano stdin. Tuttavia, i risultati del processo possono essere visualizzati come stdout. La visualizzazione dell'output dei processi in background avviene contemporaneamente all'output di altri processi in primo piano. In questo modo puoi vedere l'avanzamento o i risultati del processo in background senza interrompere altre azioni importanti.

Poiché l'esecuzione di un'ampia gamma di attività in Linux dipende dalla riga di comando, i processi in primo piano possono essere problematici, mentre l'esecuzione di processi in background libera il terminale dal lavorare su altre attività. Quindi, posizionare un'attività in primo piano in background è una cosa ragionevole da fare qui. In modo da inviare un processo in background dovresti prima impedirne l'esecuzione in primo piano. Questo viene fatto semplicemente premendo CTRL+Z. Quindi digitando il comando bg, il processo terminato verrà eseguito nuovamente in background. Il comando fg invertirà il processo e lo porterà in primo piano.

Stato del processo; Sintassi, comandi e interpretazione dell'output

Una gestione efficace dei processi in Linux richiede la comprensione dello stato dei processi che possono essere monitorati dal comando ps aux. Ma prima di approfondire il comando ps aux, impariamo a conoscere i diversi stati del processo. Sebbene esistano diversi tipi di processi e stati di processo, ecco una tabella di quelli più comuni:

Stato del processo descrizione
Correre(R) Il processo è attualmente in esecuzione e occupa risorse della CPU.
Dormire Interrompibile (S) Il processo è in attesa di un input o di un evento specifico per riprendere l'esecuzione. Al momento non utilizza risorse della CPU. Quando le risorse sono disponibili o vengono forniti segnali, il processo ricomincia.
Gruppo di continuità (D) Proprio come un processo in modalità di sospensione interrompibile, un processo di sospensione senza interruzioni non utilizza le risorse della CPU. L’unica differenza è che non reagisce ai segnali, riprende vita solo quando le risorse sono disponibili.
Arrestato(T) Un input dell'utente o un evento specifico ha messo in pausa il processo. Un processo nello stato arrestato non utilizza alcuna risorsa della CPU.
Morto(X) Il processo è terminato e non esiste più.

Una buona comprensione di questi stati del processo è un aspetto cruciale per gestire e risolvere in modo efficace i problemi dei sistemi Linux. Ora tratteremo la sintassi e i comandi per ottenere lo stato del processo in Linux, nonché come interpretare l'output.

Sintassi e comandi per ottenere lo stato del processo

Puoi ottenere lo stato del processo in Linux con la sintassi di base per il comando ps:

ps [process name]

Ci sono anche altre opzioni usate con il comando ps:

ausiliario: Questa opzione mostra un elenco completo di tutti i processi in esecuzione sul sistema. Fornisce informazioni quali ID di processo (PID), ID di processo principale (PPID), utilizzo della CPU e della memoria e stati dei processi. L'output fornito dal comando ps aux è molto più ordinato, ha più leggibilità e contiene molte più informazioni utili rispetto al comando ps di base.

ef: Questa opzione mostra un elenco in formato completo dei processi con dettagli aggiuntivi, inclusa la gerarchia dei processi come struttura ad albero.

l: Questa opzione fornisce un formato di elenco lungo, che presenta informazioni più dettagliate sui processi.

Comprendere l'output

Quando esegui il comando ps con le opzioni desiderate, genera un output che rappresenta i processi attualmente in esecuzione sul tuo sistema. L'output è costituito da colonne che mostrano diversi attributi del processo, tra cui l'ID del processo (PID), l'ID del processo principale (PPID), l'utilizzo della CPU, l'utilizzo della memoria, lo stato del processo, il tipo di terminale e il nome del comando.

Ecco una spiegazione del significato di ciascuna di queste colonne:

PID: Questa colonna mostra l'ID univoco del processo.

TTY: Questa colonna mostra il tipo di terminale a cui l'utente ha effettuato l'accesso.

TEMPO: Questa colonna è un indicatore della quantità di CPU utilizzata da questo processo in minuti e secondi.

CMD: Questa colonna rappresenta il nome del comando che ha avviato questo processo.

L'analisi delle informazioni fornite dal comando ps ti offre una visione più approfondita del comportamento della tua macchina Linux.

Tecniche avanzate di ps per la gestione dei processi con il comando ps

Esploriamo alcune delle funzionalità avanzate del comando ps e come possono essere utilizzate in modo efficace:

1. Ordinamento dei processi

Il comando ps aux può essere utilizzato per ordinare l'output finale in base a diverse colonne. Ad esempio, puoi ordinare i processi in base all'ID processo o all'utilizzo della CPU per visualizzarli nell'ordine desiderato.

Ecco un esempio di ordinamento dei processi in base all'ID processo utilizzando ps aux:

ps aux –-sort pid

Il comando head viene utilizzato per ottenere solo le prime cinque righe dell'output.

ps aux sort pid

2. Visualizzazione dell'albero dei processi

Se vuoi vedere chiaramente la relazione genitore-figlio dei processi, puoi utilizzare il comando ps con l'opzione forest.

ps -aux --forest

relazione genitore-figlio dei processi Linux

Per vedere la relazione tra i processi in uno schema ad albero, puoi anche usare il comando pstree. Questo comando creerà un output più comprensibile e illustrerà perfettamente la gerarchia tra i processi. Per utilizzare questo comando, digitare il seguente comando:

pstree [pid or username]

Assegnando a questo comando un PID, dici al comando di considerare quel processo come la radice dell'albero.

3. Processi di filtraggio

Immagina di voler lavorare con un gruppo specifico di processi; ad esempio, vuoi elencare tutti i processi di uno degli utenti. È possibile filtrare i processi in base a una caratteristica utilizzando il comando ps. In questo esempio, abbiamo filtrato i processi in base al nome utente.

ps -u [username]

filtrare i processi Linux utilizzando il comando ps

E il comando ps aux grep può filtrare i processi in base a qualsiasi modello o parola chiave fornita al comando. Dai un'occhiata al codice seguente come esempio:

Esempio di comando ps aux grep

Questo comando elenca innanzitutto tutti i processi e passa l'output al comando grep per filtrare quel lungo elenco in base all'ID del processo. Nell'immagine sopra puoi vedere un elenco di tutti i processi che hanno il numero 15 nelle loro informazioni.

Per ulteriori informazioni sul comando ps e sulle sue capacità, puoi leggere la pagina man di questo comando. Il codice seguente mostrerà la pagina di manuale per te:

man ps

Gestione della priorità delle attività in Linux

Per spiegare meglio come funziona effettivamente la gestione dei processi in Linux, dovremmo trattare anche la priorità dei processi e come modificarla. Immagina una situazione in cui stai eseguendo diversi processi e la CPU è sovraccarica di attività. Se desideri gestire le tue risorse affinché funzionino correttamente in questa situazione, devi modificare la priorità delle attività in esecuzione. Ogni processo in Linux ha un valore di priorità. Questo valore aiuta il kernel a dare priorità alle attività. Il numero di priorità varia da -20 a 19, dove 19 indica l'attività meno importante e -20 quella più urgente. Il processo con la priorità più alta riceve più tempo CPU rispetto ad altri processi. I valori di priorità vengono spesso definiti valori “interessanti”, in cui i valori accettabili inferiori indicano una priorità più elevata.

È possibile utilizzare i comandi nice e renice per allocare in modo efficiente le risorse di sistema.

Ma prima di modificare la priorità dei processi, esploriamo il primo caso d’uso del comando ps.

  • Visualizzazione della priorità corrente di tutti i processi utilizzando il comando ps:

Questo comando elenca tutti i processi insieme ai relativi ID di processo (PID), nomi di comando e priorità corrente (valore gradevole):

 

ps -eo pid,cmd,nice

Ottenere la priorità di tutti i processi utilizzando il comando ps

  • Avvio di un processo con un'alta priorità predefinita utilizzando il comando nice:

Puoi avviare un processo con la tua priorità preferita utilizzando questo comando:

nice -n [priority] [command]

Sostituisci [priority] con il valore negativo desiderato che rappresenta il livello di priorità e [command] con il comando che desideri eseguire.

Ecco un esempio:

avviare un processo con priorità alta predefinita

  • Modifica della priorità di un comando già in esecuzione:
renice -n [priority] -p [PID]

Sostituisci l'ID del processo che vuoi manipolare con [PID].

Se vuoi avere una potente macchina Linux su cui eseguire tutti i tipi di attività, a VPS Linux è la soluzione migliore per te. Cloudzy offre vari piani VPS Linux con la tua distribuzione preferita preinstallata. Con molte caratteristiche vantaggiose come il supporto 24 ore su 24, 7 giorni su 7, una politica di rimborso di 30 giorni e una garanzia di uptime del 99,95%, Cloudzy è riuscita a mantenere bassi i prezzi. I nostri prezzi per Linux VPS partono da soli $ 4,95 al mese.

Hosting VPS Linux

Procurati un VPS Linux economico o premium per l'hosting del tuo sito web o desktop remoto, al prezzo più conveniente in circolazione. VPS in esecuzione su Linux KVM per una maggiore efficienza e funzionante su hardware potente con storage SSD NVMe per una maggiore velocità.

Per saperne di più

Conclusione

In conclusione, padroneggiare la gestione dei processi e il controllo del sistema è un must per gli amministratori di sistema, gli appassionati di Linux desiderosi di saperne di più e gli utenti abituali di Linux. Conoscere le capacità e le funzionalità del comando ps può facilitare la gestione del processo di apprendimento. Ecco perché questo articolo ha discusso importanti casi d'uso del comando ps oltre a fornire ai lettori un'introduzione ai processi Linux.

Domande frequenti

Qual è il comando ps aux in Linux?

Il comando ps aux Linux è un comando comunemente utilizzato in Linux per ottenere informazioni sui processi in esecuzione. Può fornire un elenco completo di processi in un formato intuitivo, inclusi gli ID di processo (PID), l'utilizzo della CPU e della memoria, gli stati di esecuzione e altri dettagli vitali.

Quali sono i due tipi di processi in Linux?

Processi in primo piano e processi in background. I processi in primo piano occupano il terminale durante l'esecuzione e non consentono altre esecuzioni. I processi in background vengono eseguiti in background e non occupano l'intero terminale.

Come posso visualizzare l'elenco dei processi in esecuzione sul mio sistema Linux?

L'elenco dei processi in esecuzione sul tuo sistema Linux può essere ottenuto utilizzando comandi come ps, top o htop per visualizzarlo. Ad esempio, il comando Linux ps aux fornisce informazioni dettagliate su tutti i processi in esecuzione.

Condividere

Altro dal blog

Continua a leggere.

Le migliori app self-hosted che puoi eseguire con Cosmos Cloud Immagine di copertina con pannelli delle app attorno a un dashboard Cosmos.
Server e sistema operativo

Le migliori app self-hosted che puoi eseguire con Cosmos Cloud: file, contenuti multimediali, password, automazione e altro!

Forse hai configurato Cosmos Cloud e ora vuoi vedere quali app si adattano bene ad esso, o forse non hai ancora deciso su Cosmos e vuoi solo vedere se si adatta bene al tuo ambiente di lavoro.

Nick ArgentoNick Argento 16 minuti di lettura
Copertina di Portainer e Cosmos Cloud per la gestione delle app Docker con diagramma di configurazione ibrida e operazioni al neon e blocchi di accesso.
Server e sistema operativo

Portainer vs Cosmos Cloud: la soluzione migliore per la gestione delle app Docker

Se conosci già Docker e desideri semplicemente un modo più semplice per eseguire uno stack di app in crescita, ecco la risposta breve a Portainer vs Cosmos Cloud. Portainer è la scelta più forte per direc

Nick ArgentoNick Argento 14 minuti di lettura
Cosmos Cloud vs CasaOS vs Umbrel presenta un grafico che mostra tre percorsi self-hosted all'interno di un mondo astratto di rete cloud.
Server e sistema operativo

Cosmos Cloud vs CasaOS vs Umbrel: quale piattaforma self-hosted si adatta alla tua configurazione?

La risposta breve è che CasaOS è ancora il punto di partenza più semplice, Umbrel ha l'atmosfera più pulita e curata e Cosmos Cloud ha più senso quando si desidera un controllo più stretto sul dominio.

Nick ArgentoNick Argento 11 minuti di lettura

Pronti per la distribuzione? A partire da $ 2,48 al mese.

Cloud indipendente, dal 2008. AMD EPYC, NVMe, 40 Gbps. Rimborso entro 14 giorni.