ART

 

.

Η εντολή wait περιμένει μέχρι να τελειώσει μια διεργασία που εκτελείται στο παρασκήνιο.
Χρήση

wait [n]

όπου n είναι το αναγνωριστικό της διεργασίας (pid) που εκτελείται ή ο κωδικός της (job ID). Αν δε δίνεται το n, η εντολή περιμένει μέχρι να τελειώσουν όλες οι διεργασίες που είναι γνωστές στο κέλυφος.

Η wait συνήθως επιστρέφει την κατάσταση εξόδου της τελευταίας διεργασίας που τερματίστηκε. Μπορεί επίσης να επιστρέψει 127 αν το n ορίζει μια διεργασία που δεν υπάρχει, ή 0 αν δεν υπάρχουν διεργασίες.

Επειδή η wait πρέπει να γνωρίζει τις διεργασίες του τρέχοντος περιβάλλοντος του κελύφους, συνήθως υλοποιείται σαν ενσωματωμένη εντολή του κελύφους.
Παράδειγμα

Η παρακάτω εντολή είναι χρήσιμη όταν τμήμα ενός σεναρίου μπορεί να εκτελεστεί παράλληλα αλλά πρέπει να οριστεί ένα σύνορο, η εκτέλεση μετά το οποίο να εξαρτάται από την επιτυχή εκτέλεση του κώδικα πριν από αυτό. Πρώτα γίνεται λήψη του φακέλου src/ από έναν υπολογιστή με το όνομα iona μέσω της εντολής rsync και ταυτόχρονα ανανεώνονται οι βιβλιοθήκες από τις οποίες εξαρτάται το πρόγραμμα, πριν κατασκευαστεί ο συνδυασμός τους.

#!/bin/bash

# Σενάριο παράλληλης ανανέωσης που χρησιμοποιεί την εντολή wait

# Ανανεώνει το τοπικό αντίγραφο
rsync iona:src/ . &
# Αναβαθμίζει τις απαιτούμενες βιβλιοθήκες, ή τερματίζει για να δείξει κάποιο σφάλμα στην εκτέλεση της εντολής make
make -C lib || exit 1

# Περιμένει να τελειώσει η rsync (κάτι το οποίο μπορεί να έχει ήδη γίνει) και τερματίζει τη διεργασία, εκτός και αν απέτυχε η rsync
wait && make

Δείτε επίσης

Κατάλογος βοηθημάτων του Unix
Wait (κλήση συστήματος)

Εξωτερικοί σύνδεσμοι
wiktionary logo
Το Βικιλεξικό έχει σχετικό λήμμα:
wait (unix)

Εγχειρίδιο αναφοράς του GNU bash (Αγγλικά)

Προγράμματα γραμμής εντολών και ενσωματωμένα του Unix και (άλλα)
Σύστημα αρχείων

cat cd chmod chown chgrp cksum cmp cp du df file fsck fuser ln ls lsattr lsof mkdir mount mv pwd rm rmdir split touch

Διεργασίες
at bg chroot

cron exit fg kill killall nice pgrep pidof pkill ps pstree sleep time top wait
watch
Περιβάλλον χρήστη

env finger id logname mesg passwd su sudo uname uptime w wall who whoami write

Επεξεργασία κειμένου
awk comm cut ed ex fmt head iconv join less more paste sed sort tac tail tr uniq wc xargs
Προγραμματισμός Κελύφους
. alias basename dirname echo expr false printf test true unset
Δικτύωση
inetd netstat nslookup ping rlogin nc traceroute
Αναζήτηση
find grep strings
Διάφορα
apropos bc cal clear date dd lp man nl size tee yes

Εγκυκλοπαίδεια Πληροφορικής

Κόσμος

Αλφαβητικός κατάλογος

Hellenica World - Scientific Library

Από τη ελληνική Βικιπαίδεια http://el.wikipedia.org . Όλα τα κείμενα είναι διαθέσιμα υπό την GNU Free Documentation License