GNU/Linux >> Znalost Linux >  >> Linux

Příkaz Wait v Linuxu vysvětlený na příkladech

čekání příkaz je součástí systému Linux; proto jej můžete najít v kterékoli z distribucí Linuxu. Používá se k čekání před dokončením běžícího procesu. Aby to fungovalo, musíte jej použít s ID úlohy nebo ID procesu.

Stručně řečeno, čekání příkaz s daným ID úlohy nebo ID procesu počká na dokončení procesu a vrátí stav ukončení.

Počkejte příkaz je užitečný, pokud jde o správu pracovního postupu automatizace. Může vám pomoci správně nastavit průtok, aby byla automatizace úspěšná. Například váš proces automatizace vyžaduje, aby konkrétní modul dokončil provádění dříve, než se uplatní další modul. Umožní vám to příkaz wait.

Fungování čekání příkaz

Příkaz bude sledovat předchozí proces. Jakmile předchozí proces vrátí stav, odešle stav ukončení. Pokud tedy čekáte na dokončení procesu s ID 25351, příkaz wait počká na své dokončení před odesláním stavu ukončení. Zpětná zpráva bude obsahovat stav ukončení procesu.

Obecná syntaxe:

wait [Processid] [jobid]
  • ID procesu –> Pokud použijete ID procesu (čekací PID), bude čekat na ukončení nástroje
  • ID úlohy –> V tomto případě bude čekat na proces na pozadí, který jste vybrali. Funguje pouze v aktuálním prostředí spouštění prostředí.

Příkaz exit je nastaven tak, aby překročil hodnotu větší než 128, pokud se proces náhle ukončí. Pokud tedy vidíte nějakou částku vyšší než 128, znamená to, že proces nefungoval podle očekávání.

Stav úspěšného ukončení je nastaven na 0. K tomu dojde pouze v případě, že proces úspěšně skončí, aniž by v aktuálním prostředí spuštěn žádný podřízený proces. Pokud však neobdržíte 0 jako výstupní stav, znamená to, že došlo k nějaké chybě. Je upozorněno hodnotou od 1 do 126. Pokud také dostanete stav ukončení 127, znamená to, že ID procesu je neznámé.

Praktické příklady

Abyste tomu lépe porozuměli, pojďme si projít některé z praktických příkladů níže.

Počkejte příkaz s více procesy

V tomto příkladu uvidíme, jak čekat příkaz pracuje s různými procesy. Vytvoříme skript, kde spustíme dva příkazy a pak na ně počkáme.

Skript pojmenujeme multiple.sh . Níže je jeho kód.

#!/bin/bash
echo "testing the wait command instance 1" &
process_id=$!
echo "testing the wait command instance 2" &
wait $process_id
echo Job 1 is completed and exited with status $?
echo Job 2 is completed and existed with status $?

Výše uvedené je také příkladem skriptu s příkazem wait. Také vrátí stav. Abychom lépe porozuměli, projdeme si skript řádek po řádku. V prvním řádku importujeme bash, který použijeme ke spuštění skriptu.

Dále shellu odpovíme, že testujeme příkaz wait. ID procesu prvního procesu uložíme do proměnné $process_id. Nyní čekáme na provedení prvního procesu. Jakmile je hotovo, vypíše, že první proces je dokončen, a také vypíše stav s „$?“

Také můžete vidět, že druhý příkaz wait se používá s „$!“. To znamená, že použijeme druhé ID procesu s příkazem wait.

Nakonec se oba procesy zcela provedou a vrátí stav ukončení 0.

Ukončení procesu a použití čekání příkaz

Ve druhém příkladu ukončíme proces a poté použijeme čekat příkaz. Pojmenujme náš skript killandwait.sh.

#! /bin/bash
echo "Killing process and using wait command"
sleep 10 &
procc_id=$!
kill $procc_id
wait $procc_id
echo $procc_id is terminate

Pokud spustíte výše uvedený skript, získáte následující výstup:

Jak vidíte, stav ukončení je jiný a čte se, když je proces ukončen. Tento příklad ukazuje, jak příkaz vrací různé stavy ukončení v závislosti na osudu procesu.

Kontrola hodnoty stavu ukončení

V posledním příkladu si projdeme skript, který používá check() funkce. check() funkce má dva argumenty. Nazvěme náš skript waitandcheck.sh .

Zde definujeme funkci:

function check()
{
echo "Let's sleep for $1 seconds"
sleep $1
exit $2
}

Jak můžete, tato funkce nejprve odpoví, jak dlouho bude první proces spát, a poté je použije k uspání a ukončení procesu. Vstup provedeme pomocí následujících řádků:

check $1 $2 &
b=$!
echo "checking the status"
wait $b && echo FINE || echo NOT FINE

Ve výše uvedených řádcích přebíráme vstup od uživatele a poté stav vypíšeme pomocí čekání příkaz.

Závěr

To je vše o čekání použití příkazů v Linuxu. Jak jste již zažili, lze jej dobře využít v automatizačním workflow. Jak příkaz používáte? Našli jste další využití, než je uvedeno v tomto článku? Podělte se o své myšlenky s našimi čtenáři.


Linux
  1. Příkaz vypnutí Linuxu s příklady

  2. Příkaz Linux Traceroute, vysvětlený s příklady

  3. JQ Command v Linuxu s příklady

  1. Bash wait Příkaz s příklady

  2. wc Linux Command s příklady

  3. Linux cut Command Vysvětlení pomocí 6 příkladů

  1. Linux ip příkaz s příklady

  2. Příkaz Linux ldd vysvětlený s příklady

  3. 15 Příkaz Linux ps s příklady