GNU/Linux >> Linux Esercitazione >  >> Linux

Wait Command in Linux spiegato con esempi pratici

Il comando wait è qualcosa che viene fornito con Linux in modo che tu possa trovarlo in tutte le distribuzioni Linux. Prima che un processo si arresti, attende che finisca. Quando includi un processo o un ID lavoro, dovresti usare il comando wait. In poche parole, i comandi wait contenenti un ID continueranno ad attendere fino al termine del processo e torneranno allo stato di terminazione. Quindi, se vuoi usare anche il comando wait, ti consigliamo di leggere attentamente questo articolo.

Cos'è il comando di attesa?

Il comando wait in Linux si rivela un processo utile e facile quando si parla di gestione del flusso di lavoro di automazione. Inoltre, ti aiuta a impostare correttamente il flusso in modo che l'automazione proceda senza intoppi. Ad esempio, utilizzando il comando wait, devi assicurarti che il modulo corrente termini l'esecuzione prima che il successivo possa iniziare a funzionare.

Questo comando controlla da vicino il processo precedente. Uno stato verrà inviato al comando al completamento del processo precedente. Di conseguenza, se si è in attesa del completamento di un processo con ID 25351, il comando wait invierà uno stato di uscita al termine. Il suo stato di uscita si troverà nel messaggio di ritorno. Ecco la sintassi generale del comando wait: 

wait [options] ID

ID(PID) –> Se si sceglie questa opzione, l'ID del processo (attendere il PID) attenderà che l'utilità venga terminata. Puoi trovare il PID di un processo tramite il seguente comando: 

pidof <process name>

Ad esempio, vogliamo trovare il PID di Firefox, quindi eseguiremo il comando seguente nel terminale:

Esempi pratici di comando Wait in Linux

- -

Di seguito sono riportati alcuni esempi del comando wait che ti aiuteranno a capirlo meglio. Abbiamo utilizzato diversi scenari e creato script di conseguenza, quindi diamo un'occhiata a loro:

1. Attendi comando con più processi

Qui in questo esempio determineremo il funzionamento del comando wait con numerosi processi. Bozzeremo uno script in cui possiamo procedere con l'esecuzione di due comandi e quindi attendere che vengano eseguiti. Abbiamo creato uno script bash "ubuntupit.sh" con le seguenti informazioni: 

#! /bin /bash

echo "wait vlc" &

process_id=$!

echo "wait firefox" &

wait $process_id

echo process 1 ended as $?

echo process 2 ended as $?

Dopo aver creato lo script sopra, abbiamo eseguito il comando seguente nel terminale:

bash ubuntupit.sh

Possiamo anche usare il comando wait negli script della shell, che sono usati per generare il processo figlio. Quindi ecco il semplice script: 

#! /bin /bash

vlc &

process_id=$!

echo "PID: $process_id"

wait $process_id

echo "Exit Details: $?"

Nel comando sopra:

  • La prima riga è composta da shebang e la seconda contiene vlc &per usare il comando wait. 
  • $! funziona come una variabile bash interna per memorizzare il PID dell'ultimo processo, che viene eseguito in background.
  • Il PID viene passato al comando wait fornito nella riga successiva, che attenderà fino alla chiusura del player vlc.
  • Alla fine, il sistema stamperà i dettagli di uscita del comando wait. 

Ora, esegui questo script nel terminale:

Possiamo anche usare l'opzione -n ​​nello script per ottenere un risultato diverso. Ecco uno script "Ubuntupit2.sh" costituito dall'opzione -n:

#! /bin /bash

vlc

firefox

wait -n

echo "First process ended"

wait

echo "All processes ended"

L'opzione -n ​​nello script precedente ritarda la stampa dell'istruzione echo fino al completamento del primo processo. Il comando wait attende il completamento di tutti i processi in background.

2. Termina un processo utilizzando il comando di attesa

Per quanto riguarda il secondo esempio relativo al comando wait, eseguiremo uno script chiamato ubuntupit3.sh per terminare un processo, quindi eseguiremo il comando wait.

#! /bin/bash
echo "Kill a Process"
vlc &
process_id=$!
kill $process_id
wait $process_id
echo $process_id is ended successfully.

Riceverai l'output durante l'esecuzione dello script:

Qui puoi vedere che lo stato di uscita indica se il processo è stato terminato. Questo esempio mostra come lo stato di uscita ritorna in modo diverso in base all'esito del processo.

3. Verifica del valore dello stato di uscita

In questo esempio, puoi vedere che la funzione check() richiede due argomenti; chiamiamo il nostro script come ubuntupit4.sh. In questo script, utilizziamo il comando sleep per dimostrare l'esempio. Stiamo definendo la seguente funzione qui:

#! /bin/bash

function check()

{

echo "Execute sleep for $1 seconds"

sleep $1

exit $2

}

check $1 $2 &

b=$!

echo "System is checking the status of the process"

wait $b && echo Ended Successfully || echo Not Ended Successfully

In questa funzione, riflettiamo prima la lunghezza del primo processo. Quindi utilizziamo le informazioni particolari per dormire e uscire dal processo. Prendiamo in considerazione il seguente input:

check $1 $2 &

b=$!

echo "System is checking the status of the process"

wait $b && echo Ended Successfully || echo Not Ended Successfully

Dopo che l'utente ha immesso un valore, il comando wait viene utilizzato per emettere lo stato. Qui abbiamo usato 6,5 e 6,0 come esempio:

Infine, Approfondimenti

L'articolo precedente riguarda tutte le informazioni sul comando wait, il suo utilizzo in Linux e gli esempi di lavoro. Hai visto come puoi farne buon uso nei flussi di lavoro di automazione. Tutto quanto menzionato nell'articolo si legge adeguatamente, dal comando utilizzato ai suoi dettagli aggiuntivi, e non perde alcun punto.


Linux
  1. Comando wc Linux con esempi

  2. Spiegazione del comando di taglio di Linux con 6 esempi

  3. Comando di spegnimento di Linux spiegato con esempi

  4. Comando Traceroute di Linux, spiegato con esempi

  5. Comando JQ in Linux con esempi

Il comando Tr in Linux spiegato con esempi

w Comando spiegato con esempi in Linux

12 Esempi pratici di In Command in Linux

Spiegazione del comando tee di Linux (con esempi)

Comando Linux lsof spiegato con 12 esempi pratici

Spiegazione del comando csplit di Linux (con esempi)