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