50% di sconto tutti i piani, offerta a tempo limitato. A partire da $2.48/mo
10 min rimasti
Server e sistema operativo

Padroneggiare la Gestione dei Processi – Comando ps aux Linux

Ada Lovegood By Ada Lovegood lettura di 10 minuti Aggiornato 11 lug 2024
comando linux ps aux

Hai almeno altri cinque tab aperti nel browser, cercando la risposta a un problema Linux che hai riscontrato?
Questo comportamento non è specifico di te o degli umani in generale. Anche le macchine multitasking. E proprio come te, Linux è un multitasker e ha diversi processi in esecuzione contemporaneamente. Che tu sia uno sviluppatore che usa Linux professionalmente o un utente normale che lavora con Linux per le tue attività quotidiane, dovresti riuscire a comprendere questi processi paralleli per mantenere il controllo totale del tuo sistema. La gestione dei processi e il controllo del sistema sono aspetti essenziali dell'esecuzione di un sistema Linux.

Per gestire efficacemente i processi in esecuzione sul sistema, vedere cosa accade in tempo reale, avere un'idea generale di tutti i processi in background e controllare le risorse di sistema, hai bisogno di conoscenze tecniche sulla gestione dei processi. Il comando ps aux è un comando potente che gioca un ruolo vitale nella gestione dei processi e nel controllo del sistema. In questo articolo, approfondiremo il comando ps aux e i suoi casi d'uso. Tratteremo anche i fondamenti di come funzionano i processi Linux.

Comprensione della gestione dei processi in Linux

Quando lavori 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 comporta la manipolazione dei processi avviati da un comando. Puoi terminare un processo, avviare un processo o riprendere i processi che sono stati terminati. Puoi anche manipolare i comandi che sono in corso.

Esistono due tipi di processi Linux:

  • Processi in foreground
  • Processi in background

Processi in primo piano Linux

Un processo in primo piano è un processo che viene eseguito attivamente e in genere richiede interazione costante e in tempo reale con l'utente. Quando un processo in primo piano è in azione, l'esecuzione di 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 ulteriori confusioni, stdin e stdout sono flussi di dati Linux insieme a stderr. È fondamentalmente il modo in cui l'utente interagisce con il processo e fornisce dati per esso. C'è l'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 Linux

I processi in background sono l'esatto opposto dei processi in primo piano poiché non richiedono 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. In genere 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. Quindi 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 dei processi in background libera il tuo terminale per lavorare su altri compiti. Quindi, mettere un'attività in primo piano in background è la scelta giusta qui. Per inviare un processo in background devi prima fermarlo dall'esecuzione in primo piano. Questo si fa semplicemente premendo CTRL+Z. Quindi digitando il comando bg, il processo terminato verrà eseguito di nuovo in background. Il comando fg inverte il processo e lo porta 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 può essere monitorato dal comando ps aux. Ma prima di approfondire il comando ps aux, impariamo a conoscere i diversi stati dei processi. Sebbene esistano diversi tipi di processi e stati dei processi, ecco una tabella dei più comuni:

Stato del processo descrizione
In esecuzione(R) Il processo è attualmente in esecuzione e sta utilizzando risorse CPU.
In standby Interrompibile (S) Il processo è in attesa di un input o evento specifico per iniziare di nuovo l'esecuzione. Non sta attualmente utilizzando risorse CPU. Quando le risorse sono disponibili o i segnali vengono inviati, il processo ricomincia.
Non interrompibile (D) Proprio come un processo che è in sleep interrompibile, un processo in sleep non interrompibile non sta utilizzando risorse CPU. L'unica differenza è che non reagisce ai segnali, torna in vita solo quando le risorse sono disponibili.
Fermato(T) Un input dell'utente o un evento specifico ha sospeso il processo. Un processo nello stato stopped non utilizza risorse CPU.
Morto(X) Il processo è stato terminato e non esiste più.

Una buona comprensione di questi stati dei processi è un aspetto cruciale della gestione e della risoluzione dei problemi efficaci dei sistemi Linux. Ora, affrontiamo 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 del comando ps:

ps [process name]

Esistono anche altre opzioni utilizzate con il comando ps:

aux: Questa opzione mostra un elenco completo di tutti i processi in esecuzione sul sistema. Fornisce informazioni come gli ID dei processi (PID), gli ID dei processi padre (PPID), CPU e l'utilizzo della memoria, oltre allo stato dei processi. L'output fornito dal comando ps aux è molto più ordinato, ha una migliore 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 in una struttura ad albero.

l: Questa opzione fornisce un formato di elenco dettagliato, presentando informazioni più specifiche sui processi.

Interpretare 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 è composto da colonne che mostrano diversi attributi dei processi, inclusi l'ID del processo (PID), l'ID del processo padre (PPID), utilizzo di CPU, utilizzo della memoria, stato del processo, tipo di terminale e nome del comando.

Ecco una spiegazione del significato di ciascuna colonna:

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

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

ORA: Questa colonna è un indicatore di quanto CPU viene utilizzato da questo processo in minuti e secondi.

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

Analizzare le informazioni fornite dal comando ps ti dà una comprensione più profonda del comportamento della tua macchina Linux.

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

Esploriamo alcune delle funzioni 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 colonne diverse. Ad esempio, puoi ordinare i processi per ID del processo o utilizzo di CPU per vederli nell'ordine desiderato.

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

ps aux –-sort pid

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

ps aux ordina per pid

2. Visualizzazione ad albero dei processi

Se desideri vedere chiaramente la relazione genitore-figlio tra i processi, puoi usare il comando ps con l'opzione forest.

ps -aux --forest

relazione genitore-figlio dei processi Linux

Per visualizzare la relazione tra i processi in uno schema ad albero, puoi anche usare il comando pstree. Questo comando crea un output più comprensibile e illustra perfettamente la gerarchia tra i processi. Per usare questo comando, digita il seguente comando:

pstree [pid or username]

Fornendo a questo comando un PID, gli dici di considerare quel processo come 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. Puoi filtrare i processi in base a una caratteristica usando il comando ps. In questo esempio, abbiamo filtrato i processi in base al nome utente.

ps -u [username]

filtraggio dei processi Linux usando il comando ps

Il comando ps aux grep filtra i processi in base a qualsiasi pattern o parola chiave che fornisci. Dai un'occhiata al codice qui sotto come esempio:

esempio del comando ps aux grep

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

Per ulteriori informazioni sul comando ps e le sue capacità, puoi leggere la pagina di manuale di questo comando. Il codice qui sotto ti mostrerà la pagina di manuale:

man ps

Gestione della priorità dei processi in Linux

Per spiegare meglio come funziona effettivamente la gestione dei processi in Linux, dobbiamo affrontare anche la priorità dei processi e come modificarla. Immagina una situazione in cui stai eseguendo più processi e CPU è sovraccarico di attività. Se vuoi gestire le tue risorse per funzionare correttamente in questa situazione, devi cambiare la priorità dei processi 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 è l'attività meno importante e -20 è quella più urgente. Il processo con la priorità più alta riceve più tempo di CPU rispetto ad altri processi. I valori di priorità sono spesso chiamati valori "nice", dove valori nice inferiori indicano una priorità più alta.

Puoi usare i comandi nice e renice per allocare efficientemente le risorse di sistema.

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

  • Visualizzazione della priorità attuale di tutti i processi usando il comando ps:

Questo comando elenca tutti i processi insieme agli ID dei processi (PID), ai nomi dei comandi e alla priorità attuale (valore nice):

 

ps -eo pid,cmd,nice

Ottenimento della priorità di tutti i processi usando il comando ps

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

Puoi avviare un processo con la priorità preferita usando 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 vuoi eseguire.

I'm ready to translate short UI labels for Cloudzy to Italian. Please provide the English text you'd like me to translate.

avvio di 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 modificare con [PID].

Se vuoi una macchina Linux potente per eseguire qualsiasi tipo di attività, un Linux VPS è la soluzione migliore per te. Cloudzy offre diversi piani Linux VPS con la tua distro preferita preinstallata. Con molte caratteristiche vantaggiose come il supporto 24/7, una politica di rimborso di 30 giorni e una garanzia di uptime del 99,95%, Cloudzy ha mantenuto i prezzi bassi. I nostri prezzi per Linux VPS partono da soli 4,95 $/mese.

Hosting Linux VPS

Scegli un Linux VPS economy o premium per ospitare il tuo sito web o desktop remoto, al prezzo più conveniente disponibile. VPS In esecuzione su Linux KVM per un'efficienza maggiore e in funzione su hardware potente con storage NVMe SSD per una velocità superiore.

Leggi di più

Conclusione

In conclusione, padroneggiare la gestione dei processi e il controllo del sistema è essenziale per amministratori di sistema, appassionati di Linux desiderosi di imparare di più e utenti ordinari di Linux. Imparare le capacità e le funzionalità del comando ps può facilitare il tuo apprendimento della gestione dei processi. Per questo motivo, questo articolo ha discusso importanti casi d'uso del comando ps oltre a fornire ai lettori un'introduzione ai processi di Linux.

Domande frequenti

Che cos'è il comando ps aux in Linux?

Il comando ps aux Linux è un comando comunemente usato in Linux per ottenere informazioni sui processi in esecuzione. Può fornire un elenco completo di processi in un formato user-friendly, inclusi i loro ID di processo (PID), l'uso di CPU e memoria, gli stati di esecuzione e altri dettagli vitali.

Quali sono 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 permettono 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 si può ottenere usando comandi come ps, top, o htop. Ad esempio, il comando Linux ps aux fornisce informazioni dettagliate su tutti i processi in esecuzione.

Condividi

Altro dal blog

Continua a leggere.

Le migliori app self-hosted che puoi eseguire con Cosmos Cloud: immagine di copertina con pannelli di app intorno a una dashboard Cosmos.
Server e sistema operativo

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

Dopo aver configurato Cosmos Cloud e voler vedere quali app si abbinano bene, oppure non hai ancora deciso su Cosmos e vuoi semplicemente scoprire quanto bene si adatta al tuo flusso di lavoro

Nick ArgentoNick Argento lettura di 16 minuti
Portainer vs Cosmos Cloud per la gestione di app Docker: copertina con diagramma di configurazione ibrida e diagramma di operazioni neon rispetto ai blocchi di accesso.
Server e sistema operativo

Portainer vs Cosmos Cloud: quale scegliere per la gestione di app Docker

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

Nick ArgentoNick Argento 14 minuti di lettura
Cosmos Cloud vs CasaOS vs Umbrel: grafica di confronto che mostra tre percorsi self-hosted all'interno di un'astrazione unica di rete cloud.
Server e sistema operativo

Cosmos Cloud vs CasaOS vs Umbrel: quale piattaforma self-hosted si adatta al tuo setup?

La risposta breve è che CasaOS è ancora il punto di partenza più semplice, Umbrel ha l'aspetto più curato e pulito, e Cosmos Cloud ha più senso quando vuoi un controllo più stretto sui domini

Nick ArgentoNick Argento 11 min di lettura

Pronto per il deployment? A partire da $2,48/mese.

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