wait(1p): Skillnad mellan sidversioner

Från Wiki.linux.se
Hoppa till navigering Hoppa till sök
(Skapade sidan med '= wait(1p) = == NAMN == wait — vänta på att processer avslutas == SYNOPSIS == <pre> wait [pid...] </pre> == BESKRIVNING == När en asynkron lista (se avsnitt 2.9.3.1, ''Exempel'') startas av skalet blir process-ID:t för det sista kommandot i varje element av den asynkrona listan känt i den aktuella skal-exekveringsmiljön; se avsnitt 2.12, ''Shell Execution Environment''. Om verktyget ''wait'' anropas utan operander ska det vänta tills alla process-ID:n som ä...')
 
Ingen redigeringssammanfattning
 
(En mellanliggande sidversion av samma användare visas inte)
Rad 1: Rad 1:
= wait(1p) =
= wait(1p) =


Rad 10: Rad 11:


== BESKRIVNING ==
== BESKRIVNING ==
När en asynkron lista (se avsnitt 2.9.3.1, ''Exempel'') startas av skalet blir process-ID:t för det sista kommandot i varje element av den asynkrona listan känt i den aktuella skal-exekveringsmiljön; se avsnitt 2.12, ''Shell Execution Environment''.
När en asynkron lista (se avsnitt 2.9.3.1, ''Exempel'') startas av skalet blir process-ID:t för det sista kommandot i varje element av listan känt i den aktuella skal-exekveringsmiljön; se avsnitt 2.12, ''Shell Execution Environment''.


Om verktyget ''wait'' anropas utan operander ska det vänta tills alla process-ID:n som är kända av det anropande skalet har avslutats och därefter avslutas med returvärdet noll.
Om ''wait'' anropas utan operander ska det vänta tills alla process-ID:n som är kända av det anropande skalet har avslutats och sedan avslutas med returvärdet 0.


Om en eller flera ''pid''-operander anges och dessa motsvarar kända process-ID:n ska ''wait'' vänta tills alla har avslutats. Om någon ''pid'' anger okända process-ID:n ska ''wait'' behandla dessa som om de var kända process-ID:n som avslutats med statuskod 127. Returvärdet från ''wait'' ska vara samma som det sista angivna ''pid''-operandens process.
Om en eller flera ''pid''-operander anges och dessa motsvarar kända processer, ska ''wait'' vänta tills alla avslutats. Om någon operand motsvarar en okänd process ska den behandlas som om den avslutats med status 127. Returvärdet från ''wait'' är då samma som för det sista angivna ''pid''.
 
De kända process-ID:na gäller endast för anrop av ''wait'' i den aktuella skal-exekveringsmiljön.


== FLAGGOR ==
== FLAGGOR ==
Rad 22: Rad 21:


== OPERANDER ==
== OPERANDER ==
Följande operand stöds:
''pid''   
''pid''   
: Ett av följande:   
: Kan vara ett av följande:   
   1. Ett osignerat heltal som representerar process-ID:t för ett kommando som ska väntas på.   
   1. Ett osignerat heltal som är process-ID för ett kommando som ska väntas på.   
   2. Ett jobbstyrnings-ID (se POSIX.1-2017, avsnitt 3.204, ''Job Control Job ID'') som identifierar en bakgrundsprocessgrupp som ska väntas på. Gäller endast i den aktuella skal-exekveringsmiljön; se avsnitt 2.12, ''Shell Execution Environment''. Returvärdet bestäms av det sista kommandot i pipelinen.   
   2. Ett jobbstyrnings-ID (se POSIX.1-2017, avsnitt 3.204, ''Job Control Job ID'') som identifierar en bakgrundsprocessgrupp. Detta gäller endast i den aktuella skal-exekveringsmiljön; se avsnitt 2.12. Returvärdet blir statusen för det sista kommandot i pipelinen.   


'''OBS:''' Jobbstyrnings-ID som operand stöds endast på system med User Portability Utilities-optionen.
Obs: Jobbstyrnings-ID stöds bara på system med User Portability Utilities-optionen.


== STDIN ==
== STDIN ==
Rad 38: Rad 35:


== MILJÖVARIABLER ==
== MILJÖVARIABLER ==
Följande miljövariabler ska påverka exekveringen av ''wait'':
''LANG''   
''LANG''   
: Standardvärde för internationaliseringsvariabler som är osatta eller tomma. Se POSIX.1-2017, avsnitt 8.2.
: Standardvärde för internationaliseringsvariabler som är osatta eller tomma.


''LC_ALL''   
''LC_ALL''   
: Åsidosätter alla andra internationaliseringsvariabler om satt till en icke-tom sträng.
: Åsidosätter alla andra internationaliseringsvariabler om det är satt.


''LC_CTYPE''   
''LC_CTYPE''   
: Anger lokalanpassning för tolkning av teckendata.
: Avgör lokalanpassning för tolkning av tecken.


''LC_MESSAGES''   
''LC_MESSAGES''   
: Anger lokalanpassning för diagnostiska meddelanden till standardfel.
: Avgör lokalanpassning för diagnostiska meddelanden.


''NLSPATH''   
''NLSPATH''   
Rad 62: Rad 57:


== STDERR ==
== STDERR ==
Standardfel används endast för diagnostiska meddelanden.
Används endast för diagnostiska meddelanden.


== UTGÅNGSFILER ==
== UTGÅNGSFILER ==
Rad 71: Rad 66:


== SLUTSTATUS ==
== SLUTSTATUS ==
Om en eller flera operander angavs och alla antingen avslutats eller var okända, returnerar ''wait'' samma status som det sista angivna kommandot.   
* Om ''wait'' anropas utan operander och alla kända processer har avslutats returneras 0. 
 
* Om ett fel upptäcks returneras 1–126. 
* Om processen avslutades av en signal ska returvärdet vara >128, unikt för varje signal, men det exakta värdet är ospecificerat. (Se [[kill(1p)]] -l.)
* Om sista angivna ''pid'' var okänd returneras 127.   
* Annars gäller: 
* Om en process avslutas av en signal ska statusen vara >128, med unikt värde för signalen, men exakta värdet är ospecificerat (se [[kill(1p)]] -l).
  * **0** – ''wait'' anropades utan operander och alla kända processer har avslutats. 
  * **1–126** – Ett fel upptäcktes.
  * **127** – Den sista angivna ''pid'' var okänd. 


== FELSITUATIONER ==
== FELSITUATIONER ==
Rad 85: Rad 77:


== ANVÄNDNING ==
== ANVÄNDNING ==
I de flesta implementationer är ''wait'' en inbyggd del av skalet. Om det körs i en subshell eller separat exekveringsmiljö, exempelvis:
''wait'' är i de flesta implementationer en inbyggd del av skalet. Om det körs i en subshell eller separat miljö (t.ex. `(wait)`, `nohup wait ...`, `find . -exec wait ... \;`) returnerar det direkt eftersom det inte finns några kända process-ID:n där.
 
<pre>
(wait)
nohup wait ...
find . -exec wait ... \;
</pre>
 
returnerar det omedelbart eftersom inga kända process-ID:n finns i dessa miljöer.


Historiska implementationer av interaktiva skal har raderat status för avslutade bakgrundsprocesser innan varje prompt, vilket gjorde att status ofta gick förlorad. POSIX.1-2017 kräver att skalet sparar status tills den begärs, vilket gör skript som:
POSIX kräver att skalet sparar status för avslutade bakgrundsjobb tills statusen efterfrågas, skript som detta fungerar pålitligt:


<pre>
<pre>
Rad 102: Rad 86:
j2&
j2&
wait $p1
wait $p1
echo "Job 1 avslutades med status $?"
echo "Jobb 1 avslutades med status $?"
wait $!
wait $!
echo "Job 2 avslutades med status $?"
echo "Jobb 2 avslutades med status $?"
</pre>
</pre>
tillförlitliga. 
Skalet får slänga status för processer om applikationen inte kan nå deras PID (t.ex. om ''$!'' aldrig användes). Skalet behöver bara minnas {CHILD_MAX} processer.


== EXEMPEL ==
== EXEMPEL ==
Ett exempel på att identifiera vilken signal som avslutade en process:
Exempel på att identifiera vilken signal som avslutade en process:


<pre>
<pre>
Rad 132: Rad 112:


== MOTIVERING ==
== MOTIVERING ==
''wait'' beskrivs inte i termer av funktionen ''waitpid()'' från POSIX.1-2017 System Interfaces, för att undvika överspecificering. Men ''wait'' måste vänta på en specifik process om argument ges. Historiska implementationer använde ''wait()'' tills rätt PID returnerades eller inte fanns. Detta kan dock göra att status för vissa bakgrundsjobb går förlorad. Därför rekommenderas funktionalitet motsvarande ''waitpid()''.
''wait'' beskrivs inte i termer av funktionen ''waitpid()'' i POSIX.1-2017 för att undvika överspecificering. Men om ett argument ges måste ''wait'' vänta på den specifika processen.


Möjligheten att vänta på flera ''pid'' operander kommer från KornShell.
Stöd för flera ''pid''-operander kommer från KornShell. Detta lades till för att noggrant kunna bestämma status för asynkrona listor.


== FRAMTIDA RIKTNINGAR ==
== FRAMTIDA RIKTNINGAR ==
Rad 142: Rad 122:
[[kill(1p)]], [[sh(1p)]], [[jobs(1p)]], [[bg(1p)]], [[fg(1p)]], [[sleep(1p)]].   
[[kill(1p)]], [[sh(1p)]], [[jobs(1p)]], [[bg(1p)]], [[fg(1p)]], [[sleep(1p)]].   
POSIX.1-2017: avsnitt 3.204 ''Job Control Job ID'', kapitel 8 ''Environment Variables''.   
POSIX.1-2017: avsnitt 3.204 ''Job Control Job ID'', kapitel 8 ''Environment Variables''.   
POSIX.1-2017 System Interfaces: [[wait(3p)]].
Systemgränssnitt: [[wait(3p)]].


== COPYRIGHT ==
== COPYRIGHT ==
Delar av denna text är återgiven från IEEE Std 1003.1-2017, Standard for Information Technology – Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 7, 2018 Edition. Copyright © 2018 IEEE och The Open Group.
Delar av denna text är återgiven från IEEE Std 1003.1-2017, ''Portable Operating System Interface (POSIX)'', The Open Group Base Specifications Issue 7, 2018 Edition. Copyright © 2018 IEEE och The Open Group.
 
Vid skillnader gäller originalstandarden som auktoritativ. Den kan erhållas online på: http://www.opengroup.org/unix/online.html


Vid skillnader gäller originalstandarden som auktoritativ. Den kan hämtas på: http://www.opengroup.org/unix/online.html





Nuvarande version från 29 augusti 2025 kl. 06.48

wait(1p)

NAMN

wait — vänta på att processer avslutas

SYNOPSIS

wait [pid...]

BESKRIVNING

När en asynkron lista (se avsnitt 2.9.3.1, Exempel) startas av skalet blir process-ID:t för det sista kommandot i varje element av listan känt i den aktuella skal-exekveringsmiljön; se avsnitt 2.12, Shell Execution Environment.

Om wait anropas utan operander ska det vänta tills alla process-ID:n som är kända av det anropande skalet har avslutats och sedan avslutas med returvärdet 0.

Om en eller flera pid-operander anges och dessa motsvarar kända processer, ska wait vänta tills alla avslutats. Om någon operand motsvarar en okänd process ska den behandlas som om den avslutats med status 127. Returvärdet från wait är då samma som för det sista angivna pid.

FLAGGOR

Inga.

OPERANDER

pid

Kan vara ett av följande:
 1. Ett osignerat heltal som är process-ID för ett kommando som ska väntas på.  
 2. Ett jobbstyrnings-ID (se POSIX.1-2017, avsnitt 3.204, Job Control Job ID) som identifierar en bakgrundsprocessgrupp. Detta gäller endast i den aktuella skal-exekveringsmiljön; se avsnitt 2.12. Returvärdet blir statusen för det sista kommandot i pipelinen.  

Obs: Jobbstyrnings-ID stöds bara på system med User Portability Utilities-optionen.

STDIN

Inte använt.

INDATAFILER

Inga.

MILJÖVARIABLER

LANG

Standardvärde för internationaliseringsvariabler som är osatta eller tomma.

LC_ALL

Åsidosätter alla andra internationaliseringsvariabler om det är satt.

LC_CTYPE

Avgör lokalanpassning för tolkning av tecken.

LC_MESSAGES

Avgör lokalanpassning för diagnostiska meddelanden.

NLSPATH

Anger plats för meddelandekataloger för LC_MESSAGES.

ASYNKRONA HÄNDELSER

Standard.

STDOUT

Inte använt.

STDERR

Används endast för diagnostiska meddelanden.

UTGÅNGSFILER

Inga.

UTÖKAD BESKRIVNING

Ingen.

SLUTSTATUS

  • Om wait anropas utan operander och alla kända processer har avslutats returneras 0.
  • Om ett fel upptäcks returneras 1–126.
  • Om sista angivna pid var okänd returneras 127.
  • Om en process avslutas av en signal ska statusen vara >128, med unikt värde för signalen, men exakta värdet är ospecificerat (se kill(1p) -l).

FELSITUATIONER

Standard.

Följande avsnitt är informativa.

ANVÄNDNING

wait är i de flesta implementationer en inbyggd del av skalet. Om det körs i en subshell eller separat miljö (t.ex. `(wait)`, `nohup wait ...`, `find . -exec wait ... \;`) returnerar det direkt eftersom det inte finns några kända process-ID:n där.

POSIX kräver att skalet sparar status för avslutade bakgrundsjobb tills statusen efterfrågas, så skript som detta fungerar pålitligt:

j1&
p1=$!
j2&
wait $p1
echo "Jobb 1 avslutades med status $?"
wait $!
echo "Jobb 2 avslutades med status $?"

EXEMPEL

Exempel på att identifiera vilken signal som avslutade en process:

sleep 1000 &
pid=$!
kill -kill $pid
wait $pid
echo "$pid avslutades av en SIG$(kill -l $?) signal."

Exempel med pipeline och jobbstyrning:

sleep 257 | sleep 31 &
jobs -l %%
wait <pid för sleep 31>
wait %%

MOTIVERING

wait beskrivs inte i termer av funktionen waitpid() i POSIX.1-2017 för att undvika överspecificering. Men om ett argument ges måste wait vänta på den specifika processen.

Stöd för flera pid-operander kommer från KornShell. Detta lades till för att noggrant kunna bestämma status för asynkrona listor.

FRAMTIDA RIKTNINGAR

Inga.

SE ÄVEN

kill(1p), sh(1p), jobs(1p), bg(1p), fg(1p), sleep(1p). POSIX.1-2017: avsnitt 3.204 Job Control Job ID, kapitel 8 Environment Variables. Systemgränssnitt: wait(3p).

COPYRIGHT

Delar av denna text är återgiven från IEEE Std 1003.1-2017, Portable Operating System Interface (POSIX), The Open Group Base Specifications Issue 7, 2018 Edition. Copyright © 2018 IEEE och The Open Group.

Vid skillnader gäller originalstandarden som auktoritativ. Den kan hämtas på: http://www.opengroup.org/unix/online.html


Sidslut

Orginalhemsidan på Engelska : https://man7.org/linux/man-pages/man1/wait.1p.html Det här är en maskinöversättning av Linux man sidor till svenska. Om du hittar fel är vi tacksamma om du rapporterar dem via formuläret som finns på https://www.linux.se/kontaka-linux-se/

Tack till Datorhjälp som har sponsrat Linux.se med webbhotell.