Εντολή Bash Wait στο Linux

Bash Wait Command Linux



Η αναμονή είναι μια εντολή Linux που επιστρέφει μια κατάσταση εξόδου μετά την αναμονή για μια πλήρη διαδικασία εκτέλεσης. Όταν εκτελούνται πολλές διαδικασίες ταυτόχρονα, η εντολή αναμονής μπορεί να παρακολουθεί μόνο την τελευταία. Εάν η εντολή αναμονής δεν σχετίζεται με μια εργασία ή ένα αναγνωριστικό διεργασίας, θα περιμένει να ολοκληρωθούν όλες οι θυγατρικές διαδικασίες πριν επιστρέψει μια κατάσταση εξόδου. Η εντολή αναμονής bash χρησιμοποιείται συχνά με την εντολή Αναγνωριστικά διεργασίας ή Αναγνωριστικά εργασίας.

Σε αυτό το σεμινάριο, θα διερευνήσουμε την εντολή Bash Wait στο Linux.







Σύνταξη:

Η γενική σύνταξη της εντολής Wait στο Linux είναι:



περιμένετε [επιλογή] ID

Το αναγνωριστικό θα ήταν αναγνωριστικό διεργασίας ή αναγνωριστικό εργασίας.



Εξηγώντας την εντολή Bash Wait στο Linux:

Αρχικά, δημιουργήστε ένα αρχείο χρησιμοποιώντας την εντολή αφής:





$αφήBashWait.sh

Κάντε αυτό το αρχείο εκτελέσιμο χρησιμοποιώντας την παρακάτω εντολή:



$chmod+x όνομα αρχείου

Μόλις παραχωρηθούν τα εκτελέσιμα δικαιώματα στο αρχείο, ανοίξτε το αρχείο και γράψτε ένα σενάριο σε αρχείο bash:

#!/bin/bash

ύπνος 3 &

processID=$!

πέταξε έξω 'PID:$ processID'

Περίμενε $ processID

πέταξε έξω 'Κατάσταση εξόδου: $?'

$! είναι μια μεταβλητή στο BASH που αποθηκεύει το PID της πιο πρόσφατης διαδικασίας.

Τώρα, εκτελέστε το σενάριο ως εξής:

$./όνομα αρχείου

$./BashWait.sh

Στο κέλυφος θα εμφανιστεί το αναγνωριστικό διεργασίας και η κατάσταση υπάρχουσας.

Χρησιμοποιώντας την επιλογή -n:

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

Γράψτε τις παρακάτω γραμμές στο σενάριό σας:

#!/bin/bash

ύπνος 30 &

ύπνος 8 &

ύπνος 7 &

Περίμενε

πέταξε έξω 'Η πρώτη δουλειά ολοκληρώθηκε.'

Περίμενε

πέταξε έξω 'Όλες οι εργασίες έχουν ολοκληρωθεί.'

Στη συνέχεια, εκτελέστε ξανά το σενάριο και όταν ολοκληρωθεί η πρώτη εργασία, θα εκτυπώσει το μήνυμα στο τερματικό και περιμένετε να ολοκληρωθούν όλες οι άλλες εργασίες.

Χρησιμοποιώντας την επιλογή –f:

Η επιλογή -f περιμένει να σταματήσει κάθε αναγνωριστικό διαδικασίας ή εργασία πριν επιστρέψει τον κωδικό εξόδου. Ο έλεγχος εργασιών είναι διαθέσιμος μόνο για αποκριτικές προτροπές από προεπιλογή.

Ανοίξτε το τερματικό και εκτελέστε την εντολή:

Περιμένετε τη διαδικασία 3944.

Ανοίξτε ένα διαφορετικό παράθυρο τερματικού και εκτελέστε την εντολή kill για να τερματίσετε τη διαδικασία.

Η κατάσταση θα αλλάξει. Η εντολή Wait θα ολοκληρώσει και θα επιστρέψει τον κωδικό εξόδου της διαδικασίας.

Επαναλάβετε τα παραπάνω βήματα με την εντολή –f.

Σενάριο με εντολή Wait:

Χρησιμοποιούμε σενάρια ‘hello.sh’ και ‘bash.sh’ για επίδειξη. Το σενάριο ‘hello.sh’ εκτυπώνει αριθμούς από 1 έως 5 και το σενάριο ‘bash.sh’ καλεί hello.sh και το εκτελεί στο παρασκήνιο, έχοντας το PID του hello.sh και περιμένοντας να τελειώσει.

Δημιουργήστε δύο σενάρια με το όνομα hello και bash:

Προσθέστε τις παρακάτω γραμμές στο αρχείο hello.sh:

#!/bin/bash

ΓιαΕγώσε 1 2 3 4 5 6 7 8 9 10

κάνω

πέταξε έξωhello.sh - αριθμός βρόχου$ iΤο

Έγινε

Προσθέστε τις παρακάτω γραμμές στο σενάριο bash:

#!/bin/bash

πέταξε έξωΞεκίνησε το bash.sh

πέταξε έξωΞεκίνησε hello.sh

Το/γεια.σ&

process_id=$!

Περίμενε $ process_id

πέταξε έξωΟλοκληρώθηκε hello.sh

Παραγωγή:

Συμπέρασμα:

Όταν ένας χρήστης θέλει να σταματήσει μια διαδικασία, το σύστημα απελευθερώνει όλους τους πόρους που διατηρούνται από τη διαδικασία και περιμένει να ξεκινήσει άλλος. Θα πρέπει να ειδοποιήσουμε τη διαδικασία ότι μπορεί να επανεκκινήσει την εκτέλεση μόλις ολοκληρωθούν οι άλλες διαδικασίες. Η εντολή αναμονής στο bash περιμένει να ολοκληρωθεί η εκτέλεση και επιστρέφει την κατάσταση εξόδου όταν ολοκληρωθεί η εκτέλεση της διαδικασίας. Σε αυτό το εγχειρίδιο, έχουμε δει μερικά παραδείγματα της εντολής αναμονής Bash στο Linux.