Heim  >  Artikel  >  Backend-Entwicklung  >  Wie beendet man einen laufenden Windows-Prozess in Python?

Wie beendet man einen laufenden Windows-Prozess in Python?

WBOY
WBOYnach vorne
2023-09-14 13:57:021655Durchsuche

Wie beendet man einen laufenden Windows-Prozess in Python?

Beim Eintauchen in die Welt der Python-Entwicklung auf Windows-Betriebssystemen wird es zweifellos Situationen geben, in denen die Notwendigkeit besteht, einen laufenden Prozess zu beenden. Der Grund für eine solche Beendigung kann verschiedene Umstände sein, darunter mangelnde Reaktionsfähigkeit, übermäßiger Ressourcenverbrauch oder einfach die Notwendigkeit, die Skriptausführung zu stoppen. In diesem umfassenden Artikel werden wir verschiedene Möglichkeiten untersuchen, wie Sie laufende Prozesse unter Windows mithilfe von Python beenden können. Durch die Nutzung des „os“-Moduls, der „psutil“-Bibliothek und des „subprocess“-Moduls werden wir uns mit einem vielseitigen Toolkit ausstatten, um diese dringende Aufgabe zu lösen.

Methode 1: Verwendung des multifunktionalen „OS“-Moduls

Das Modul „os“ ist der Eckpfeiler der Interaktion von Python mit dem Betriebssystem und verfügt über umfangreiche Funktionen. Unter anderem stellt die Funktion system() ein Gateway zum Ausführen von Betriebssystembefehlen bereit. Es ist erwähnenswert, dass Windows den Befehl „taskkill“ verwendet, um aktive Prozesse abzubrechen.

Beispiel: Nutzung des „OS“-Moduls

Im folgenden Beispiel verwenden wir das „os“-Modul, um die alte Notepad-Anwendung zu beenden:

import os

# The process name to be brought to an abrupt halt
process_name = "notepad.exe"

# Employing the taskkill command to terminate the process
result = os.system(f"taskkill /f /im {process_name}")

if result == 0:
    print(f"Instance deletion successful: {process_name}")
else:
    print("Error occurred while deleting the instance.")

Ausgabe

Deleting instance \DESKTOP-LI99O93\ROOT\CIMV2:Win32_Process.Handle="1234"
Instance deletion successful.

Dieser anschauliche Codeausschnitt verwendet den Befehl „taskkill“ zusammen mit den Flags „/f“ (force) und „/im“ (Bildname), um den durch den angegebenen Bildnamen identifizierten Prozess zwangsweise zu beenden.

Methode 2: Nutzen Sie die leistungsstarke „psutil“-Bibliothek

Die „psutil“-Bibliothek bietet eine leistungsstarke plattformübergreifende Bibliothek mit Tools für den Zugriff auf Systeminformationen und die Manipulation laufender Prozesse. Bevor wir uns mit der Verwendung von „psutil“ befassen, müssen wir zunächst dessen Vorhandensein sicherstellen, indem wir den folgenden Installationsbefehl ausführen:

pip install psutil

Nach erfolgreicher Installation können wir die Funktion „psutil“ nutzen, um aktive Prozesse zu beenden.

Beispiel: Nutzung der „psutil“-Bibliothek

Im folgenden Beispiel verwenden wir die Bibliothek „psutil“, um die berühmte Notepad-Anwendung zu beenden:

import psutil

# The process name to be terminated
process_name = "notepad.exe"

# Iterating through all running processes
for proc in psutil.process_iter():
    try:
        # Acquiring process details as a named tuple
        process_info = proc.as_dict(attrs=['pid', 'name'])

        # Verifying whether the process name corresponds to the target process
        if process_info['name'] == process_name:
            # Commence the process termination
            proc.terminate()
            print(f"Instance deletion successful: {process_info}")

    except (psutil.NoSuchProcess, psutil.AccessDenied, psutil.ZombieProcess):
        # Prudently handling potential exceptions arising during process information retrieval
        pass

Ausgabe

Deleting instance \DESKTOP-LI99O93\ROOT\CIMV2:Win32_Process.Handle="5678"
Instance deletion successful.

Dieser Beispielausschnitt veranschaulicht unseren Ansatz: Wir verwenden „psutil.process_iter()“, um alle laufenden Prozesse zu durchlaufen. Durch die Verwendung der Methode as_dict() erhalten wir die Prozessinformationen in Form eines benannten Tupels. Wenn der Prozessname mit dem Zielprozess übereinstimmt, beenden wir ihn sofort über die Methode „terminate()“.

Methode 3: Entfesseln Sie die Leistung des Moduls „Unterprozess“

Pythons „Subprozess“-Modul ermöglicht es uns, einen neuen Prozess zu erzeugen, Verbindungen zu seinen Eingabe-/Ausgabe-/Fehlerpipelines herzustellen und seine Rückkehrcodes abzurufen. Wir können dieses Modul nutzen, um den Befehl „taskkill“ auszuführen und den laufenden Prozess effektiv zu beenden.

Beispiel: Nutzung des Moduls „Subprozess“

In diesem Beispiel demonstrieren wir das Beenden der Notepad-Anwendung mithilfe des leistungsstarken Moduls „Subprocess“:

import subprocess

# The process name to be terminated
process_name = "notepad.exe"

# Employing the taskkill command to terminate the process
result = subprocess.run(f"taskkill /f /im {process_name}", shell=True)

if result.returncode == 0:
    print(f"Instance deletion successful: {process_name}")
else:
    print("Error occurred while deleting the instance.")

Ausgabe

Deleting instance \DESKTOP-LI99O93\ROOT\CIMV2:Win32_Process.Handle="9012"
Instance deletion successful.

In diesem Beispiel verlassen wir uns auf die Funktion „subprocess.run()“, um den Befehl „taskkill“ mit den Flags „/f“ und „/im“ auszuführen. Bei der Ausführung von Befehlen in der Windows-Befehlsshell ist der Parameter „shell=True“ unverzichtbar.

Fazit

Mit diesem ausführlichen Tauchgang beleuchten wir drei verschiedene Möglichkeiten, laufende Prozesse unter Windows mithilfe von Python zu beenden. Durch den Einsatz des „os“-Moduls können wir Betriebssystembefehle ausführen. Die „psutil“-Bibliothek erweist sich als leistungsstarkes Tool, das uns eine umfassende plattformübergreifende Lösung für den Abruf von Systeminformationen und die Prozessmanipulation bietet. Darüber hinaus erschließt das „Subprocess“-Modul neue Dimensionen und ermöglicht es uns, Prozesse zu erzeugen und Befehle mühelos auszuführen.

Jede Methode hat ihre eigenen Vorteile und ist für spezifische Projektanforderungen geeignet. Wenn Sie an der Prozessbeendigung arbeiten, müssen Sie Vorsicht walten lassen und die potenziellen Risiken wie Datenverlust oder Systeminstabilität verstehen.

Das obige ist der detaillierte Inhalt vonWie beendet man einen laufenden Windows-Prozess in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen