Uccidi tutti i lavori fermati Linux

Uccidi tutti i lavori fermati Linux

In Linux, un lavoro si riferisce a un processo avviato e gestito dalla shell. Questo può essere un singolo comando, un comando shell lungo e complesso che include tubi e reindirizzamenti, un eseguibile o uno script. Ogni lavoro in Linux viene gestito assegnando un lavoro sequenziale IP associato a un processo specifico.

Un concetto chiave da capire sui lavori di Linux è il loro stato. Ci sono due stati principali per i lavori Linux:

  • Primo piano
  • Sfondo

Lavori in primo piano

Un lavoro in primo piano si riferisce a un comando o a un programma eseguito nella shell e occupa la sessione del terminale fino a quando non si completa. Un esempio sarebbe l'avvio di un file manager o browser nel terminale

Ad esempio, la seguente screenshot mostra una finestra terminale con un lavoro in primo piano.

Nell'immagine sopra, il prompt della shell non è disponibile fino alla chiusura della finestra Firefox.

Lavori di fondo

L'opposto del primo piano è i lavori di fondo. Per avviare un lavoro nella shell come lavoro di fondo, utilizziamo il simbolo AMPERSAND (&). Usando questo dice alla shell di mettere qualsiasi comandi prima dell'Amper e in background e mostrare immediatamente il prompt della shell.

L'esempio seguente mostra come mettere il lavoro Firefox (nell'esempio sopra) in background.

Come puoi vedere, il prompt della shell è ora disponibile nonostante Firefox è ancora in esecuzione.

Noterai valori numerici visualizzati per lavori di fondo. Il primo, indicato da parentene quadra ([]), mostra l'ID del lavoro, mentre l'altro valore indica il PID del processo associato al lavoro.

Come gestire i lavori di fondo

Il comando di Jobs gestisce il controllo del lavoro. Ciò ti consente di visualizzare i lavori in background.

sudo lavori

L'esecuzione del comando sopra mostra i lavori in background come mostrato di seguito:

A partire dal lato sinistro, abbiamo l'ID del lavoro.

Seguendo immediatamente le staffe è il segno più (+) o meno (-). Il segno più indica che questo è il lavoro attuale, mentre il numero negativo mostra il lavoro successivo.

La fascia successiva mostra lo stato del lavoro. Che può essere eseguito, fermato, terminato, fatto o uscire con un codice di stato.

Infine, l'ultima parte mostra il nome effettivo del lavoro.

Mostra lavori con PID

Per mostrare i lavori di fondo con i loro corrispondenti valori PID, utilizziamo il flag come:

Lavori -l

Ciò mostrerà i lavori di fondo con i loro valori PID, come mostrato nell'immagine seguente.

Lavori di fondo con output

Supponiamo di avere un lavoro che vogliamo eseguire in background che scarica un output sullo schermo. Ad esempio, nell'esempio sopra, ho messo il comando apt, che ha un sacco di output in background, senza incasinare il mio terminale.

Per fare ciò, è possibile reindirizzare l'output in /dev /null come:

Sudo Apt-get Aggiornamento> /dev /null &

Come portare il lavoro di fondo in primo piano

Possiamo portare lavori di fondo in primo piano usando il comando FG. Ad esempio, per portare il lavoro Firefox con ID lavoro di 1 in background, possiamo fare:

FG %1

Ciò porterà il lavoro in primo piano come:

ubuntu@ubuntu20: ~ $ fg %1
Firefox

Opzioni di comando di lavoro

Il comando Jobs non ha molte opzioni.

Abbiamo già discusso del -l per mostrare i lavori con i loro ID di processo.

Altre opzioni che puoi passare al comando lavoro includono:

  • -N - Questo mostra i lavori che hanno cambiato il loro status dall'ultima notifica. Ad esempio, un lavoro che è cambiato da una corsa a uno stato fermo.
  • -P - Elenca solo i pid dei lavori.
  • -R -Solo lavori di gestione
  • -S - Spettacoli solo fermi.

Come interrompere o uccidere i lavori

Possiamo interrompere i lavori utilizzando il comando Kill seguito da ID lavoro, una sottostringa o l'ID del processo.

Uccidi usando ID lavoro

Per uccidere un lavoro con l'ID del lavoro, utilizziamo la % seguita dal valore ID come:

uccisione %%

Questo ucciderà il lavoro attuale; Questo è simile a %+.

Uccidi un lavoro con una sottostringa

Uccidere un lavoro con una sottostringa, prefiggere la sottostringa con %? seguito dal valore della sottostringa come:

uccisione %?gnome calculator

NOTA: Linux esegue i lavori contemporaneamente. Ciò significa che salta avanti e indietro tra i lavori disponibili fino al completamento. Quindi, terminare una sessione di terminale con lavori in esecuzione terminerà tutti i tuoi lavori.

Non devi preoccuparti di questo se usi un multiplexer terminale come tmux o schermo, poiché puoi riattarli.

Come uccidere i lavori fermi

Per noi per uccidere tutti i lavori fermati, dobbiamo legare due comandi insieme. Il primo otterrà i PID di tutti i lavori fermati e il prossimo ucciderà tutti i lavori forniti.

Per visualizzare i lavori fermati, utilizziamo il comando

lavori -s

Questo comando mostra tutti i lavori fermati.

Avendo questo, possiamo ottenere i PID dei lavori fermati e darli per uccidere il comando come:

sudo kill -9 'Jobs -p -s'

Questo ucciderà tutti i lavori fermati.

Conclusione

Questo tutorial ha superato i concetti di controllo del lavoro in Linux e su come ottenere informazioni sui lavori. È bene notare che il controllo del lavoro potrebbe non essere disponibile a seconda del guscio di scelta.

Grazie per aver letto e felici conchiglie.