Thoát hệ điều hành Python

Thoat He Dieu Hanh Python



Mô-đun Hệ điều hành của Python cung cấp nhiều công cụ để truyền với hệ điều hành. Mô-đun này cung cấp một phương pháp mô-đun để sử dụng tính năng phụ thuộc vào hệ điều hành. Nhiều phương thức khác nhau được sử dụng trong ngôn ngữ lập trình Python và “Python os exit” là một trong số đó. Khi sử dụng hàm này, một người có thể kết thúc một quy trình Python với một trạng thái cụ thể mà không cần chạy trình xử lý dọn dẹp hoặc xóa bộ đệm, chẳng hạn như bằng một lệnh gọi hệ thống “os fork()”, trong đó chức năng này thường được sử dụng trong quy trình con.

Một chức năng của máy tính có thể kết thúc quá trình thực hiện của nó bằng cách bắt đầu một lệnh gọi hệ thống thoát trên nhiều hệ điều hành của máy tính. Trong một hệ thống đa luồng, một lối ra thường tượng trưng cho việc ngừng hoạt động của một luồng. Hệ điều hành truy xuất tài nguyên bao gồm tệp và bộ nhớ để quản lý tài nguyên. Tuy nhiên, nếu chúng ta nói về cách tiêu chuẩn để thoát, thì đó có thể là phương thức “sys.exit(n)”.







cú pháp

Cú pháp của phương thức thoát hệ điều hành Python được đưa ra dưới đây:




Cú pháp của phương thức thoát hệ điều hành Python xác định hai điều: phần đầu tiên biểu thị trạng thái thoát của quy trình và mô-đun này sẽ không trả về bất kỳ giá trị nào.



Ví dụ #1: Sử dụng Phương thức “os._exit()” để thoát khỏi nhiều quy trình mà không cần gọi bất kỳ trình xử lý dọn dẹp nào

Phương pháp thoát có thể được vận hành trong bất kỳ hệ điều hành nào, chủ yếu trong hệ điều hành “Windows” hoặc “Linux”. Trong ví dụ đầu tiên của chúng tôi, chúng tôi sẽ xem xét nhiều quy trình xảy ra dưới dạng quy trình cha và quy trình con, nơi nó thực hiện xử lý mà không cần gọi trình xử lý dọn dẹp trong hàm hoặc chương trình. Mô-đun này sẽ hoạt động hiệu quả hơn trong hệ điều hành “Linux”. Việc dọn dẹp luồng “pop()” với giá trị khác 0 cho tham số thực thi sẽ khiến trình xử lý dọn dẹp được gọi. Tất cả các quy trình dọn dẹp đã được đẩy nhưng chưa được giải phóng sẽ được bật ra khỏi ngăn xếp vệ sinh và được thực thi theo thứ tự vào sau ra trước (LIFO) khi chuỗi dừng, nhưng sẽ không cần gọi nó trong ví dụ này.






Đoạn mã cho ví dụ đầu tiên của chúng tôi về lối thoát hệ điều hành Python được giải thích bên dưới:

Chương trình được bắt đầu bằng cách nhập thư viện “os” vì chúng tôi lo ngại về việc thực hiện các điều kiện và điều khoản để liên kết với hệ điều hành của thiết bị. Sau đó, chúng tôi đã tạo “PID” và liên kết “Python” với thư viện “os”. Bây giờ chúng ta sử dụng câu lệnh có điều kiện trong đó điều kiện “nếu” là “PID lớn hơn 0”.



Sau đó, chúng tôi đã sử dụng chức năng “print()”, chức năng này phải in câu lệnh “\nĐang xử lý ở cấp độ gốc”, trong đó “\n” được sử dụng để chuyển con trỏ sang dòng mới trong điều kiện “nếu”. Biến “thông tin” được khởi tạo để gọi “os.waitpid(pid,0)”, trong đó “PID” bắt đầu từ khoảng “0”. Tiếp theo, chúng tôi đã áp dụng một điều kiện “nếu” khác trên “os.WIFEXITED()”, nơi chúng tôi đã cấp cho nó mô tả thông tin “1” để xử lý. Nó lưu trữ thông tin xử lý của nó trong hàm “python_code” do người dùng xác định, hàm này chứa câu lệnh in “Mã con là Thoát” và cấp nó cho giá trị “python_code” trong hàm “print()”.

Bây giờ, chúng ta tiến tới điều kiện “khác”, có bốn câu lệnh in. Câu lệnh trong hàm “print()” đầu tiên là “Processing in Child”. Câu lệnh in thứ hai là “ID của Xử lý:” và cùng với đó, nó chứa giá trị của “os.getpid()”, hàm chứa tệp mã của Python dành cho xử lý con. Câu lệnh in thứ ba được sử dụng ở đây là “Này Python!!” và câu lệnh in thứ tư là 'Tồn tại xử lý con!' Cuối cùng, chúng tôi đã áp dụng mô-đun chính của mình để thoát khỏi quá trình xử lý thực thi chương trình của tệp hiện có là “os._exit()” và nơi biến “os.EX_OK” được chỉ định mà không trả về bất kỳ chức năng nào để xử lý.


Vì xử lý con được ưu tiên chạy trước và thoát khỏi chương trình khỏi xử lý gốc vì nó cần nhiều thời gian hơn. Vì vậy, ảnh chụp nhanh đầu ra chỉ hiển thị các câu lệnh in mà chúng tôi đã cung cấp trong mã trước đó, nhưng tệp mà chúng tôi đã tạo trong hệ thống sẽ hiển thị id xử lý của nó, “78695”, mà chúng ta có thể thấy trong ảnh chụp nhanh cuối cùng. Và sau đó, quá trình xử lý thoát gốc sẽ là “0” vì nó thậm chí không trải qua quá trình xử lý kỹ lưỡng bởi vì, để biết thêm, nó yêu cầu trình xử lý.

Ví dụ #2: Sử dụng Phương thức “os._exit()” để thoát khỏi một quy trình chung mà không cần xóa bộ đệm

Trong ví dụ này, chúng ta sẽ xem xét hiện tượng thoát khỏi thực thi xử lý chung đơn giản sau khi chạy các khoảng thời gian của nó từ khi đọc nó qua hệ thống. Ở đây, chúng tôi thậm chí không sử dụng bộ đệm xả vì nó không cần thiết cho quá trình xử lý. Xét cho cùng, “os._exit” sẽ hoạt động hiệu quả hơn để thoát khỏi quy trình.


Chúng ta hãy xem đoạn mã mà chúng ta đã nhập thư viện Python “os”. Chương trình bắt đầu với một vòng lặp for trong đó chúng tôi sử dụng biến “p” để chứa một số dữ liệu và đặt phạm vi của nó thành “6”. Sau đó, chúng tôi đã áp dụng điều kiện “nếu” trên biến “p”, điều này sẽ cân bằng tổng các khoảng thành “4”. Khi hệ thống xử lý bắt đầu từ chỉ số “0”, nó sẽ chạy quy trình từ “0” đến “4”. Ngay khi điều kiện được thỏa mãn, tức là giá trị của “p” trở thành 4, chương trình sẽ thực thi câu lệnh tiếp theo, đó là hàm “print()” và cung cấp cho đơn vị xử lý “thoát”. Ở dòng cuối cùng, chúng tôi đã sử dụng hàm “os._exit()” để thoát khỏi hàm sau khi bắt đầu từ “0” và sau đó thoát khỏi quá trình xử lý. Cuối cùng, tất cả các giá trị được lưu trữ trong biến “p” sau khi xử lý sẽ được in trên màn hình đầu ra khi chúng ta sử dụng hàm “print()” bằng cách gán biến “p” cho nó.


Màn hình đầu ra sẽ chỉ hiển thị các số “0”, “1”, “2” và “3”, vì đây là bốn số đạt được sau khi xử lý và sau đó, quá trình xử lý sẽ là một lối thoát.

Ví dụ #3: Sử dụng Phương thức “os._exit()” để thoát khỏi quy trình không tồn tại trong bộ đệm

Đôi khi, chúng tôi cố gắng chuyển một số quy trình mà hệ thống không dễ dàng thực hiện quy trình hoặc dừng vì bất kỳ lý do gì—hầu hết khi quy trình không có đối với chương trình cụ thể do sự tồn tại của bất kỳ tài liệu, thư viện hoặc phân bổ tệp cụ thể nào .


Chúng ta hãy xem đoạn mã của chúng tôi, nơi chúng tôi đã sử dụng 'Số' làm biến và đặt nó trong phạm vi từ '0' đến '7'. Bây giờ, chúng tôi đã áp dụng điều kiện “nếu” trong đó “Số” bằng với chỉ mục “5”, sau đó chúng tôi sử dụng câu lệnh “print()” để in giá trị “thoát”. Sau đó, chúng tôi đã sử dụng một mô-đun cụ thể là “raise SystemExit” để thoát khỏi quá trình xử lý như “os._exit” và sử dụng lại chức năng “print()” để hiển thị các số được lưu trong biến “Numbers” sau khi quá trình kết thúc.


Ảnh chụp nhanh đầu ra sẽ mô tả rõ ràng rằng nó sẽ không hiển thị các giá trị “Số” sau mô-đun sử dụng thoát. Vì không có tài liệu chính, chẳng hạn như thư viện và khởi tạo, nên nó sẽ trả về “trống” trong màn hình đầu ra sau khi xử lý chương trình và trả về mà không đọc bất kỳ giá trị nào, hoặc có thể chương trình không thực thi.

Sự kết luận

Trong bài viết này, chúng tôi đã thảo luận về ba ví dụ liên quan đến phương thức thoát hệ điều hành Python. Trong ví dụ đầu tiên, chúng tôi đã sử dụng mô-đun thoát hệ điều hành Python để thoát khỏi quy trình con mà không sử dụng bất kỳ trình xử lý xóa và dọn dẹp nào. Trong ví dụ thứ hai, chúng tôi đã sử dụng mô-đun thoát os trong quá trình thoát trong một chương trình mã chung duy nhất mà không cần xóa bộ đệm. Ví dụ thứ ba liên quan đến việc thoát khỏi quy trình vắng mặt hiện không có mặt hoặc không được lưu trữ trong hệ thống.