Έξοδος Python OS

Exodos Python Os



Η ενότητα λειτουργικών συστημάτων της Python προσφέρει μια ποικιλία εργαλείων για μετάδοση με το λειτουργικό σύστημα. Αυτή η ενότητα προσφέρει μια αρθρωτή μέθοδο χρήσης της δυνατότητας που εξαρτάται από το λειτουργικό σύστημα. Διάφορες μέθοδοι χρησιμοποιούνται στη γλώσσα προγραμματισμού Python, και η “Python os exit” είναι μία από αυτές. Χρησιμοποιώντας αυτήν τη συνάρτηση, μπορεί κανείς να τερματίσει μια διεργασία Python με μια συγκεκριμένη κατάσταση χωρίς να εκτελούνται χειριστές καθαρισμού ή buffers έκπλυσης, για παράδειγμα, με μια κλήση συστήματος 'os fork()', όπου αυτή η συνάρτηση χρησιμοποιείται συνήθως στη θυγατρική διαδικασία.

Μια λειτουργία υπολογιστή μπορεί να τερματίσει την εκτέλεσή της εκκινώντας μια κλήση συστήματος εξόδου σε πολλά λειτουργικά συστήματα υπολογιστών. Σε ένα σύστημα πολλαπλών νημάτων, μια έξοδος συχνά συμβολίζει τη διακοπή ενός λειτουργικού νήματος. Το λειτουργικό σύστημα ανακτά τους πόρους που περιλαμβάνουν αρχεία και τη μνήμη, για διαχείριση πόρων. Αλλά, αν μιλάμε για την τυπική για έξοδο, τότε μάλλον θα ήταν η μέθοδος “sys.exit(n)”.







Σύνταξη

Η σύνταξη της μεθόδου εξόδου Python os δίνεται παρακάτω:




Η σύνταξη της μεθόδου εξόδου Python os καθορίζει δύο πράγματα: το πρώτο μέρος αντιπροσωπεύει την κατάσταση εξόδου της διαδικασίας και αυτή η ενότητα δεν θα επιστρέψει καμία τιμή.



Παράδειγμα # 1: Χρήση της μεθόδου 'os._exit()' για έξοδο από πολλές διεργασίες χωρίς κλήση οποιουδήποτε χειριστή καθαρισμού

Η μέθοδος εξόδου μπορεί να λειτουργήσει σε οποιοδήποτε λειτουργικό σύστημα, κυρίως σε λειτουργικά συστήματα 'Windows' ή 'Linux'. Στο πρώτο μας παράδειγμα, θα εξετάσουμε τις πολλαπλές διεργασίες που συμβαίνουν ως γονική και θυγατρική διαδικασία, όπου εκτελεί επεξεργασία χωρίς να καλεί τον χειριστή καθαρισμού στη συνάρτηση ή το πρόγραμμα. Αυτή η ενότητα θα λειτουργούσε πιο αποτελεσματικά στο λειτουργικό σύστημα 'Linux'. Ένας καθαρισμός νήματος 'pop()' με μη μηδενική τιμή για την παράμετρο execute προκαλεί την κλήση του χειριστή καθαρισμού. Όλες οι διαδικασίες καθαρισμού που έχουν ωθηθεί αλλά δεν έχουν κυκλοφορήσει ακόμη βγαίνουν από τη στοίβα αποχέτευσης και εκτελούνται με τη σειρά τελευταία είσοδος και πρώτη έξοδος (LIFO) όταν το νήμα σταματήσει, αλλά δεν θα χρειαστεί να το καλέσετε σε αυτό το παράδειγμα.






Το απόσπασμα κώδικα για το πρώτο μας παράδειγμα εξόδου Python os εξηγείται παρακάτω:

Το πρόγραμμα ξεκίνησε με την εισαγωγή της βιβλιοθήκης του 'os', καθώς μας ενδιαφέρει να τηρήσουμε τις προϋποθέσεις και τους όρους σύνδεσης με το λειτουργικό σύστημα της συσκευής μας. Στη συνέχεια δημιουργήσαμε το 'PID' και συνδέσαμε το 'Python' με τη βιβλιοθήκη 'os'. Τώρα χρησιμοποιούμε τη δήλωση υπό όρους όπου η συνθήκη 'αν' είναι 'Το PID είναι μεγαλύτερο από 0'.



Μετά από αυτό, χρησιμοποιήσαμε τη συνάρτηση 'print()', η οποία πρέπει να εκτυπώσει τη δήλωση '\nΕπεξεργασία στη Γονική', όπου το '\n' χρησιμοποιείται για τη μεταφορά του δρομέα στη νέα γραμμή εντός της συνθήκης 'if'. Η μεταβλητή 'info' αρχικοποιείται με την κλήση του 'os.waitpid(pid,0)', όπου το 'PID' ξεκινά από το διάστημα '0'. Περαιτέρω, εφαρμόσαμε μια άλλη προϋπόθεση 'εάν' στο 'os.WIFEXITED()' όπου του παραχωρήσαμε την περιγραφή πληροφοριών '1' για την επεξεργασία του. Αποθηκεύει τις πληροφορίες επεξεργασίας του στη συνάρτηση «python_code» που καθορίζεται από το χρήστη, η οποία διατηρεί τη δήλωση εκτύπωσης «Child Code to be Exit» και της εκχωρεί την τιμή «python_code» στη συνάρτηση «print()».

Τώρα, ερχόμαστε στην συνθήκη 'άλλο' μας, η οποία έχει τέσσερις έντυπες δηλώσεις. Η δήλωση στην πρώτη συνάρτηση “print()” είναι “Processing in Child”. Η δεύτερη δήλωση εκτύπωσης είναι 'ID of Processing:' και μαζί με αυτό, διατηρεί την τιμή 'os.getpid()', της συνάρτησης που περιέχει το αρχείο κώδικα της Python για θυγατρική επεξεργασία. Η τρίτη δήλωση εκτύπωσης που χρησιμοποιείται εδώ είναι 'Hey Python!!' και η τέταρτη έντυπη δήλωση είναι 'Η επεξεργασία παιδιών υπάρχει!' Τέλος, εφαρμόσαμε την κύρια μονάδα μας για έξοδο από την επεξεργασία της εκτέλεσης προγράμματος του υπάρχοντος αρχείου που είναι “os._exit()” και όπου η μεταβλητή “os.EX_OK” έχει εκχωρηθεί χωρίς να επιστρέψει καμία συνάρτηση για επεξεργασία.


Ως θυγατρική επεξεργασία είναι η προτεραιότητα για την πρώτη εκτέλεση και την έξοδο από το πρόγραμμα από τη γονική επεξεργασία επειδή απαιτεί περισσότερο χρόνο. Έτσι, το στιγμιότυπο εξόδου εμφανίζει απλώς τις δηλώσεις εκτύπωσης που δώσαμε στον προηγούμενο κώδικα, αλλά το αρχείο που δημιουργήσαμε στο σύστημα εμφανίζει το αναγνωριστικό επεξεργασίας, '78695', το οποίο μπορούμε να δούμε στο τελευταίο στιγμιότυπο. Και τότε, η επεξεργασία της γονικής εξόδου θα ήταν '0', καθώς δεν υφίσταται καν ενδελεχή επεξεργασία, επειδή, για περισσότερα, απαιτεί τον χειριστή.

Παράδειγμα # 2: Χρήση της μεθόδου 'os._exit()' για έξοδο από μια γενική διαδικασία χωρίς flushing buffers

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


Ας δούμε τον κώδικα όπου εισάγαμε τη βιβλιοθήκη Python «os». Το πρόγραμμα ξεκινά με έναν βρόχο for όπου χρησιμοποιούμε τη μεταβλητή 'p' για να κρατήσουμε ορισμένα δεδομένα και να ορίσουμε το εύρος του σε '6'. Μετά από αυτό, εφαρμόσαμε τη συνθήκη «αν» στη μεταβλητή «p», η οποία εξισώνει τα συνολικά διαστήματα σε «4». Καθώς το σύστημα επεξεργασίας ξεκινά από τον δείκτη «0», θα εκτελούσε τη διαδικασία από το «0» στο «4». Μόλις η συνθήκη γίνει αντιστοίχιση, η οποία είναι η τιμή του 'p' γίνεται ίση με 4, το πρόγραμμα θα εκτελέσει την επόμενη πρόταση, η οποία είναι η συνάρτηση 'print()' και θα παρέχει τη μονάδα επεξεργασίας 'exit'. Στην τελευταία γραμμή, χρησιμοποιήσαμε τη συνάρτηση 'os._exit()' για να βγούμε από τη συνάρτηση αφού ξεκινήσουμε από το '0' και μετά να σταματήσουμε την επεξεργασία. Στο τέλος, όλες οι τιμές που αποθηκεύτηκαν στη μεταβλητή 'p' μετά την επεξεργασία θα εκτυπωθούν στην οθόνη εξόδου όπως χρησιμοποιήσαμε τη συνάρτηση 'print()' εκχωρώντας τη μεταβλητή 'p' σε αυτήν.


Η οθόνη εξόδου θα εμφανίζει απλώς τους αριθμούς «0», «1», «2» και «3», καθώς αυτοί είναι οι τέσσερις αριθμοί που φτάνουν μετά την επεξεργασία και, μετά από αυτό, η επεξεργασία θα είναι μια έξοδος.

Παράδειγμα #3: Χρήση της μεθόδου 'os._exit()' για έξοδο από μια διαδικασία που δεν υπάρχει στο buffer

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


Ας ρίξουμε μια ματιά στο απόσπασμα του κώδικά μας όπου χρησιμοποιήσαμε το 'Numbers' ως μεταβλητή και το ρυθμίσαμε να κυμαίνεται από '0' έως '7'. Τώρα, εφαρμόσαμε τη συνθήκη 'αν' όπου οι 'Αριθμοί' εξισώνονται με δείκτες '5' και, στη συνέχεια, χρησιμοποιήσαμε τη δήλωση 'print()' για να εκτυπώσουμε την τιμή 'έξοδος'. Στη συνέχεια, χρησιμοποιήσαμε μια συγκεκριμένη ενότητα 'raise SystemExit' για έξοδο από την επεξεργασία όπως το 'os._exit' και χρησιμοποιήσαμε ξανά τη συνάρτηση 'print()' για να εμφανίσουμε τους αριθμούς που είναι αποθηκευμένοι στη μεταβλητή 'Numbers' μετά την έξοδο από τη διαδικασία.


Το στιγμιότυπο εξόδου θα περιγράφει ξεκάθαρα ότι δεν θα εμφανίζει τις τιμές 'Αριθμοί' μετά τη μονάδα χρήσης εξόδου. Καθώς το κύριο υλικό απουσιάζει, όπως η βιβλιοθήκη και η αρχικοποίηση, θα επέστρεφε 'κενό' στην οθόνη εξόδου μετά την επεξεργασία του προγράμματος και θα επέστρεφε χωρίς να διαβάσει καμία τιμή, ή μπορεί το πρόγραμμα να μην πάει για εκτέλεση.

συμπέρασμα

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