wait (comandă)

De la Wikipedia, enciclopedia liberă
Salt la: Navigare, căutare

Comanda UNIX wait așteaptă ca procesul specificat să fie terminat.

Sintaxă[modificare | modificare sursă]

wait n

unde n este identificatorul procesului (pid) după care se așteaptă. Dacă n nu este specificat, comanda așteaptă ca toate procesele pornite din sesiunea shell curentă să fie terminate.

wait returnează valoarea cu care s-a terminat procesul sau 127 dacă procesul specificat nu a fost găsit.

În general, wait nu este implementat ca un program separat, preferându-se implementarea sub forma unei comenzi shell.


Exemple[modificare | modificare sursă]

Comanda wait se folosește adeseori ca parte a unui script care desfășoară în paralel mai multe activități care trebuie sincronizate.

#!/bin/bash
 
# Un update parale de fișiere care folosește comanda wait
 
# Copierea datelor
rsync iona:src/ . &
# Construirea și instalarea noilor biblioteci în paralel cu operația de copiere de mai sus; în caz de eroare se iese din script
make -C lib || exit 1
 
# Se așteaptă să se termine rsync, după care se trece la ultima fază de update
wait && make


Funcții de sistem[modificare | modificare sursă]

În UNIX, wait este și numele unei familii de funcții de sistem:

#include <sys/types.h>
#include <sys/wait.h>

pid_t wait(int *status);
pid_t waitpid(pid_t pid, int *status, int options);
int waitid(idtype_t idtype, id_t id, siginfo_t *infop, int options);

Toate aceste funcții sunt utilizate pentru a detecta schimbarea stării unui proces. wait() și waitpid() suspendă execuția procesului curent până când procesul child specificat este terminat. waitid() este similară, însă oferă mai mult control în specificarea procesului child.


Legături externe[modificare | modificare sursă]


 v  d  m  Programe în linia de comandă pentru Unix (mai multe)
Management de fișiere: cat | cd | chmod | chown | chgrp | cksum | cmp | cp | du | df | file | fsck | ln | ls | lsof | mkdir | mount | mv | pwd | rm | rmdir | split | touch
Management de procese: at | chroot | cron | exit | kill | killall | nice | pgrep | pidof | pkill | ps | pstree | sleep | time | top | wait
Management utilizator/mediu: env | finger | id | mesg | passwd | su | sudo | uname | uptime | w | wall | who | whoami | write
Procesare text: awk | comm | cut | ed | ex | fmt | head | iconv | join | less | more | paste | sed | sort | tac | tail | tr | uniq | wc | xargs
Programare Shell: basename | echo | expr | false | printf | test | true | unset Imprimare:
lp
Communicații:
inetd | netstat | ping | rlogin | traceroute
Căutare:
find | grep | strings
Diverse:
banner | bc | cal | dd | man | size | yes