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 (Αγγλικά)