Giết các cửa sổ xử lý python

Trong khi chạy một tập lệnh bằng Python, bạn có thể không biết rằng mã này có một vòng lặp vô hạn. Vì vậy, khi bạn chạy chương trình, nó sẽ đi vào một vòng lặp vô hạn. Trong tình huống như vậy, bạn sẽ phải tạm dừng việc thực thi mã

Trong bài viết này, chúng ta sẽ xem xét các cách khác nhau để kết thúc một tập lệnh đang chạy trong Python

Các cách kết thúc chương trình trong Python

Sử dụng tính năng ngắt bàn phím

Nếu bạn muốn thoát khỏi chương trình đang chạy, thì bạn cần tăng KeyboardInterrupt để chấm dứt chương trình

Đối với Windows, nhấn CTRL + C

Đối với hệ thống Linux, hãy nhấn CTRL + Z

Nếu KeyboardInterrupt không hoạt động, thì bạn có thể gửi tín hiệu SIGBREAK. Trên Windows, nhấn CTRL + Tạm dừng/ngắt. Điều này có thể được xử lý bởi trình thông dịch và nó có thể không tạo ra một ngoại lệ KeyboardInterrupt có thể bắt được

Trong môi trường Linux hoặc Unix, bạn có thể tìm PID của quy trình [số nhận dạng quy trình] cho chương trình mà bạn đang chạy. Sau đó giết quá trình bằng cách sử dụng PID của nó. Bạn có thể sử dụng ps aux. grep python để xác định các quy trình Python đang chạy và sau đó sử dụng killcommand để gửi tín hiệu SIGTERM tới hệ thống

Các lệnh là

ps aux | grep python

kill -9 

Để giết chương trình theo tên tệp

pkill -f python-script-name.

Nhưng đối với người dùng Windows, việc xử lý các tín hiệu quy trình không dễ dàng như vậy. Nếu bạn đang làm việc trên Windows, bạn phải kết thúc quá trình thực thi bằng hàm TerminateProcess. Cách tốt nhất để làm điều đó là mở Trình quản lý tác vụ. xác định vị trí con trăn. exe tương ứng với tập lệnh Python của bạn và nhấp vào "Kết thúc quá trình". Điều này sẽ chấm dứt chương trình buộc

Lệnh taskkill cũng có thể được sử dụng cho các mục đích tương tự. Lệnh này cho phép người dùng trên bất kỳ phiên bản Windows nào chấm dứt hoặc hủy bất kỳ tác vụ nào bằng cách sử dụng ID tiến trình của tác vụ. Bạn phải nhập mã cho lệnh này trong dòng lệnh. Ví dụ,

c. \>taskkill /IM mspaint. người cũ

Điều này sẽ giết tất cả các tiến trình đang chạy mspaint. người cũ

Thoát khỏi chương trình trong mã

Sử dụng “os. lối ra[]"

Phương pháp này được sử dụng để kết thúc quá trình với trạng thái được chỉ định. Nó thường được gọi cho một tiến trình con sau os. phương thức fork[] được sử dụng. Bạn có thể sử dụng cái này mà không cần xóa bộ đệm stido hoặc gọi bất kỳ trình xử lý dọn dẹp nào

Thí dụ

# Python program to show exit[0] program

import os

# Run for loop to print number 1 to 10
for i in range[10]:

    # Exit the program if value of i equal to 5 
    if i == 5:
             
        # Prints the exit message 
        print[exit] 
        os._exit[0] 
    print[i]

đầu ra

0
1
2
3
4

Sử dụng exit[] hoặc Ctrl-Z cộng với quay lại để thoát

Sử dụng “sys. lối ra[]"

hệ thống. phương thức exit[] cho phép bạn thoát khỏi chương trình Python. Phương thức nhận một đối số tùy chọn, là một số nguyên. Điều này chỉ định trạng thái thoát của mã. Trạng thái thoát bằng 0 được coi là kết thúc thành công

Thí dụ

# Python program to show sys.exit[] program

import sys

# Run for loop to print number 1 to 10
for i in range[10]:

    # Exit the program if value of i equal to 5 
    if i == 5:
             
        # Prints the exit message 
        print[exit] 
        sys.exit[0] 
    print[i]

đầu ra

0
1
2
3
4

Sử dụng exit[] hoặc Ctrl-Z cộng với Quay lại để thoát

Sử dụng “nâng cao SystemExit”

SystemExit là một ngoại lệ được đưa ra khi chương trình bạn đang chạy cần dừng lại. Bạn sử dụng ngoại lệ này để gây ra lỗi.  

# Python program to show raise SystemExit method

# Run for loop to print number 1 to 10
for i in range[10]:

    # Exit the program if value of i equal to 5 
    if i == 5:
             
        # Prints the exit message 
        print[exit] 
        raise SystemExit 
    print[i]

đầu ra

0
1
2
3
4

Sử dụng exit[] hoặc Ctrl-Z cộng với Quay lại để thoát

Phần kết luận

Ngoài các cách khác nhau được thảo luận ở trên để kết thúc chương trình Python, bạn cũng có thể sử dụng phương thức Python tích hợp sẵn thoát[]. Đối với phương pháp này, bạn không phải nhập bất kỳ thư viện nào và điều này có thể được đưa vào bất kỳ mã nào một cách đơn giản

Bước đầu tiên là liệt kê các tiến trình đang chạy. Điều này có thể được thực hiện bằng cách sử dụng thư viện psutil Python – một thư viện đa nền tảng để giám sát quy trình và hệ thống

________số 8_______

Khi bạn chạy mã này trên Windows, danh sách tên quy trình sẽ không luôn khớp với tên hiển thị được liệt kê trong Trình quản lý tác vụ. Bạn có thể thấy tên quy trình trong Trình quản lý tác vụ khi nhấp chuột phải và chọn thuộc tính. Điều này rất quan trọng khi nói đến các chuỗi phù hợp để hủy một quy trình và tại sao việc liệt kê các quy trình trước lại hữu ích

Làm thế nào để giết một quá trình

Khi bạn đã chọn một quy trình, lệnh hủy nó bằng psutil trông như thế này

   proc.kill[]

Tuy nhiên, nếu bạn không tạo quy trình ngay từ đầu hoặc quy trình không được tạo thay mặt bạn, thì bạn sẽ không có quyền hủy quy trình đó, trừ khi bạn đang chạy mã với tư cách là “Quản trị viên” hoặc “siêu người dùng”. Ví dụ: trên Windows, bạn có thể khởi động cửa sổ PowerShell bằng cách nhấp chuột phải và chọn “Chạy với tư cách Quản trị viên” hoặc trên Linux chạy bằng sudo

 
Cách tiêu diệt các quy trình dựa trên một phần chuỗi

Trong ví dụ này, một người bạn của tôi dành quá nhiều thời gian để chơi game muốn chạy một trò chơi đòi hỏi CPU và bộ nhớ cao, vì vậy họ muốn tắt các quy trình Adobe Creative Cloud đang chạy và hiện không cần, [nhưng

Sau khi kiểm tra danh sách quy trình, tên quy trình cần hủy có chứa các chuỗi. “Adobe”, “CCXProcess”, “CoreSync” và “Đám mây sáng tạo”. Bạn có thể khớp các chuỗi với một tập hợp các câu lệnh “hoặc”, nhưng một cách khác để khớp tên từ danh sách các chuỗi trong Python là sử dụng hàm có sẵn.

Một chương trình Python 3 đơn giản để khớp và hủy các quy trình trông như thế này

'''pykill.py - selective process kill prog'''
import psutil


def main[]:
    '''Process kill function'''    
    for proc in psutil.process_iter[]:
        # check whether the process name matches
        # print[proc.name[]]
        if any[procstr in proc.name[] for procstr in\
            ['Adobe', 'CCXProcess', 'CoreSync', 'Creative Cloud']]:
            print[f'Killing {proc.name[]}']
            proc.kill[]


if __name__ == "__main__":
    main[]

Trước khi chạy phiên bản này của riêng bạn và phá vỡ hệ điều hành của bạn, bạn nên kiểm tra nó. e. g. bắt đầu một cái gì đó như notepad và thay thế danh sách chuỗi bằng [‘notepad’]. Bạn sẽ không cần chạy notepad killer với tư cách là Quản trị viên [trừ khi những người khác cũng đăng nhập và bạn muốn kill notepad của họ]

Chủ Đề