Ero sivun ”Wait” versioiden välillä

Linux.fista
Siirry navigaatioon Siirry hakuun
p (jos kuitenkin erikoisohjelmiin)
p (wikilinkin korjaus)
 
(3 välissä olevaa versiota 2 käyttäjän tekeminä ei näytetä)
Rivi 1: Rivi 1:
Wait on komentotulkin sisäinen komento, joka odottaa, kunnes tietty prosessi on saatu suoritettua loppuun. Komennon syntaksi on seuraava
Wait on [[komentotulkki|komentotulkin]] sisäinen komento, joka odottaa, kunnes tietty [[prosessi]] on saatu suoritettua loppuun. Komennon syntaksi on seuraava
  wait pid,
  wait pid
missä <tt>pid</tt> on sen prosessin [[PID]]-tunniste, jonka loppumista odotetaan.
missä <tt>pid</tt> on sen prosessin [[PID]]-tunniste, jonka loppumista odotetaan.


Rivi 10: Rivi 10:
  $ [[yes]] > /dev/null &
  $ [[yes]] > /dev/null &
  [1] 12646
  [1] 12646
, mikä käynnistää [Prosessi#Prosessien_tausta-ajo|taustalle]] ohjelman [[yes]] ja [[Komentorivin perusteet|ohjaa]] sen tulosteen [[laitetiedostot|laitetiedostoon]] <tt>/dev/null</tt>. Toisella rivillä näkyvä numerosarja <tt>12646</tt> on prosessin PID-numero. Ajetaan nyt komento
, mikä käynnistää [[Prosessi#Prosessien_tausta-ajo|taustalle]] ohjelman [[yes]] ja [[Komentorivin perusteet|ohjaa]] sen tulosteen [[laitetiedostot|laitetiedostoon]] <tt>/dev/null</tt>. Toisella rivillä näkyvä numerosarja <tt>12646</tt> on prosessin PID-numero. Ajetaan nyt komento
  $ wait 12646
  $ wait 12646
ja huomataan, että komentotulkki jää odottamaan aiemmin käynnistetyn yes:in sulkeutumista. Tämä voidaan tehdä esimerkiksi kirjoittamalla toiseen komentotulkkiin komento
ja huomataan, että komentotulkki jää odottamaan aiemmin käynnistetyn yes:in sulkeutumista. Tämä voidaan tehdä esimerkiksi kirjoittamalla toiseen komentotulkkiin komento
Rivi 19: Rivi 19:
*[[Komentorivikomennot]]
*[[Komentorivikomennot]]


[[Luokka:Komentorivin erikoisohjelmat]]
[[Luokka:Komentorivin perustyökalut]]

Nykyinen versio 29. toukokuuta 2017 kello 15.46

Wait on komentotulkin sisäinen komento, joka odottaa, kunnes tietty prosessi on saatu suoritettua loppuun. Komennon syntaksi on seuraava

wait pid

missä pid on sen prosessin PID-tunniste, jonka loppumista odotetaan.

Wait on ajettava siinä komentotulkissa, jossa myös odotettava ohjelma on ajossa. Muutoin wait antaa virheilmoituksen

bash: wait: pid 12568 is not a child of this shell

Esimerkki[muokkaa]

Laitetaan taustalle pyörimään jokin ohjelma:

$ yes > /dev/null &
[1] 12646

, mikä käynnistää taustalle ohjelman yes ja ohjaa sen tulosteen laitetiedostoon /dev/null. Toisella rivillä näkyvä numerosarja 12646 on prosessin PID-numero. Ajetaan nyt komento

$ wait 12646

ja huomataan, että komentotulkki jää odottamaan aiemmin käynnistetyn yes:in sulkeutumista. Tämä voidaan tehdä esimerkiksi kirjoittamalla toiseen komentotulkkiin komento

$ killall yes

jonka jälkeen havaitaan, että edellä käynnistetty wait saa työnsä päätökseen (se on odottanut ohjelman sammumiseen asti) ja sulkeutuu itse.

Katso myös[muokkaa]