wait (Unix)
Το λήμμα παραθέτει τις πηγές του αόριστα, χωρίς παραπομπές. |
Η εντολή 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
Δείτε επίσης
ΕπεξεργασίαΕξωτερικοί σύνδεσμοι
Επεξεργασία- Εγχειρίδιο αναφοράς του GNU bash (Αγγλικά)