GNU/Linux >> Linux Esercitazione >  >> Linux

Comando killall Linux per principianti (8 esempi)

Abbiamo già discusso del comando kill che puoi utilizzare nel caso in cui desideri terminare i processi in Linux. Tuttavia, esiste un'altra utilità della riga di comando che puoi utilizzare per lo stesso scopo:killall . In questo tutorial, discuteremo le basi di questo comando usando alcuni esempi di facile comprensione.

Ma prima di farlo, vale la pena ricordare che tutti gli esempi inclusi in questo tutorial sono stati testati su Ubuntu 18.04 LTS.

Comando Linux killall

Il comando killall ti consente di uccidere i processi per nome. Di seguito è riportata la sintassi dello strumento:

killall [OPTIONS] name

Ed ecco come la pagina man spiega lo strumento:

killall sends a signal to all processes running any of the specified commands. If no signal name is specified, SIGTERM is sent. Signals can be specified either by name (e.g.  -HUP or -SIGHUP) or by number (e.g.  -1) or by option -s.

If  the command name is not regular expression (option -r) and contains a slash (/), processes executing that particular file will be  selected for killing, independent of their name.

killall returns a zero return code if at least one process has been killed for each listed command, or no commands were listed and at least one process matched the -u and -Z search criteria. killall returns non-zero otherwise.

A killall process never kills itself (but may kill other  killall  processes).

I seguenti esempi in stile domande e risposte dovrebbero darti un'idea migliore di come funziona il comando killall.

Q1. Come usare il comando killall?

L'utilizzo di base dello strumento è molto semplice:tutto ciò che devi fare è passare il nome del processo come argomento a killall. Ad esempio, per uccidere il gthumb processo in esecuzione sul mio sistema, ho usato killall nel modo seguente:

killall gthumb

Tieni presente che nel caso non fossi a conoscenza del nome esatto del processo, puoi utilizzare il ps comando per recuperare queste informazioni.

Q2. Killall fa distinzione tra maiuscole e minuscole?

Sì. Genera un errore "nessun processo trovato" se l'utente non riesce a scrivere il nome del processo nel caso corretto. Segue un esempio:

Tuttavia, se vuoi, puoi forzare killall a ignorare le maiuscole usando il -I opzione della riga di comando.

Q3. Come fare in modo che killall chieda prima di terminare il processo?

Supponiamo che tu voglia che il comando killall chieda i permessi dell'utente prima di terminare un processo, quindi puoi usare -i opzione della riga di comando. Questo renderà interattiva l'operazione killall.

Ad esempio:

Q4. Come scegliere il segnale che killall invia da elaborare?

Per impostazione predefinita, è il segnale SIGTERM che killall invia ai processi. Tuttavia, puoi inviare anche altri segnali. Puoi utilizzare le opzioni -s , --segnale e -SEGNALE per inviare questi altri segnali.

Tuttavia, affinché funzioni, è necessario sapere quali segnali può inviare il comando killall. Puoi farlo usando -l opzione della riga di comando.

killall -l

Di seguito è riportato l'elenco del suddetto comando prodotto sul nostro sistema:

Q5. Come evitare che killall si lamenti se il processo specificato non esiste?

Se il processo il cui nome è passato a "killall" non è in esecuzione (non esiste), lo strumento lo trasmette all'utente in output.

Tuttavia, se non vuoi che lo strumento produca tale output, puoi usare -q opzione della riga di comando.

Quindi puoi vedere che il comando killall è rimasto silenzioso quando è stato utilizzato -q.

Q6. Come uccidere tutti i processi di proprietà di un utente?

Se il requisito è di terminare tutti i processi di proprietà di un utente specifico, puoi utilizzare -u opzione fornita da killall. Inutile dire che l'opzione richiede di specificare il nome utente per l'utente come input.

killall -u [user-name]

Ad esempio:

killall -u himanshu

Q7. Come uccidere i processi in base al tempo?

Supponiamo di voler terminare tutti i processi che sono in esecuzione da più di 5 ore, quindi puoi farlo usando il -o opzione nel modo seguente:

killall -o 5h

Naturalmente, puoi specificare i nomi dei processi se non vuoi terminare tutti i processi. Allo stesso modo, se vuoi terminare processi che hanno, diciamo, meno di 4 ore, puoi farlo usando il -y opzione della riga di comando.

killall -y 4h

Ecco come la pagina man spiega queste opzioni:

-o, --older-than
              Match only processes that are older (started  before)  the  time
              specified.   The  time is specified as a float then a unit.  The
              units are  s,m,h,d,w,M,y  for  seconds,  minutes,  hours,  days,
              weeks, Months and years respectively.

 -y, --younger-than
              Match  only  processes that are younger (started after) the time
              specified.  The time is specified as a float then a  unit.   The
              units  are  s,m,h,d,w,M,y  for  seconds,  minutes,  hours, days,
              weeks, Months and years respectively.

Q8. Come assicurarsi che killall ritorni solo dopo la morte dei processi?

Dopo che il segnale è stato consegnato da killall al processo, se vuoi assicurarti che il comando torni solo dopo che il processo è terminato, puoi farlo usando il -w opzione della riga di comando, che costringe killall ad attendere.

killall -w [process-name]

Ecco come la pagina man descrive questa opzione:

-w, --wait
              Wait  for  all killed processes to die.  killall checks once per
              second if any of the  killed  processes  still  exist  and  only
              returns if none are left.  Note that killall may wait forever if
              the signal was ignored, had no effect, or if the  process  stays
              in zombie state.

Conclusione

Killall potrebbe non essere una passeggiata per i neofiti, ma non è anche molto complesso. Devi esercitarti con le opzioni della riga di comando che offre. Ne abbiamo discusso la maggior parte, quindi questo tutorial dovrebbe essere un buon punto di partenza. Una volta che hai finito con questi, puoi leggere di più sul comando andando alla sua pagina man.


Linux
  1. 10 Esempi di comandi "rm" per principianti Linux

  2. 10 esempi di comandi Linux Cat per principianti

  3. Tutorial sul comando cd di Linux per principianti (8 esempi)

  4. Tutorial sul comando della data di Linux per principianti (8 esempi)

  5. Esempi di comandi killall in Linux

Esercitazione sui comandi OD Linux per principianti (6 esempi)

Linux w Command Tutorial per principianti (5 esempi)

Tutorial sui comandi Linux ss per principianti (8 esempi)

Comando di localizzazione Linux per principianti (8 esempi)

16 Esempi pratici di comando Linux LS per principianti

Spiegazione del comando Linux mv per principianti (8 esempi)