使用Python在Windows和Linux上終止進程的簡易腳本分享
引言
終止系統(tǒng)中的進程在日常運維或開發(fā)中是常見需求,但傳統(tǒng)方法常讓人頭疼:圖形化工具(如Windows任務(wù)管理器或Linux的System Monitor)操作繁瑣,難以批量處理;命令行工具(如taskkill或kill)需要記住復(fù)雜參數(shù),還要手動查找進程ID,效率低下且易出錯。今天,我將分享兩個Python腳本,分別用于Windows和Linux系統(tǒng),只需輸入進程名即可終止目標進程。這些腳本簡單易用,適合系統(tǒng)管理員和開發(fā)人員。
腳本功能
這兩個腳本使用Python的psutil庫,能夠:
- 接受用戶輸入的進程名(忽略大小寫)。
- 查找所有匹配的進程。
- 在Windows上使用
taskkill命令強制終止進程。 - 在Linux上使用
SIGTERM信號優(yōu)雅終止進程。 - 處理常見錯誤,如權(quán)限不足或進程不存在。
前提條件
在使用腳本之前,需要安裝psutil庫:
pip install psutil
Windows腳本
以下是Windows平臺的腳本,使用taskkill /F命令強制終止進程:
import psutil
import os
import signal
import subprocess
def kill_process_by_name(process_name):
try:
process_name = process_name.lower()
found = False
for proc in psutil.process_iter(['name']):
if proc.info['name'].lower() == process_name or \
proc.info['name'].lower() == process_name + '.exe':
try:
subprocess.run(['taskkill', '/PID', str(proc.pid), '/F'], check=True)
print(f"Terminated process {proc.info['name']} (PID: {proc.pid})")
found = True
except (psutil.AccessDenied, subprocess.CalledProcessError):
print(f"Failed to terminate process {proc.info['name']} (PID: {proc.pid}): Access denied")
if not found:
print(f"No process found with name: {process_name}")
except Exception as e:
print(f"Error occurred: {str(e)}")
if __name__ == "__main__":
process_name = input("Enter the process name to kill (e.g., notepad): ")
kill_process_by_name(process_name)
使用方法
- 保存腳本為
kill_process_windows.py。 - 運行腳本:
python kill_process_windows.py
- 輸入進程名(如
notepad或chrome),腳本會自動處理.exe擴展名并終止匹配的進程。
示例輸出
Enter the process name to kill (e.g., notepad): notepad Terminated process notepad.exe (PID: 1234)
Linux腳本
以下是Linux平臺的腳本,使用SIGTERM信號終止進程:
import psutil
import os
import signal
def kill_process_by_name(process_name):
try:
process_name = process_name.lower()
found = False
for proc in psutil.process_iter(['name']):
if proc.info['name'].lower() == process_name:
try:
os.kill(proc.pid, signal.SIGTERM)
print(f"Terminated process {proc.info['name']} (PID: {proc.pid})")
found = True
except (psutil.AccessDenied, OSError):
print(f"Failed to terminate process {proc.info['name']} (PID: {proc.pid}): Access denied")
if not found:
print(f"No process found with name: {process_name}")
except Exception as e:
print(f"Error occurred: {str(e)}")
if __name__ == "__main__":
process_name = input("Enter the process name to kill (e.g., firefox): ")
kill_process_by_name(process_name)
使用方法
- 保存腳本為
kill_process_linux.py。 - 運行腳本:
python kill_process_linux.py
- 輸入進程名(如
firefox或gedit),腳本會發(fā)送SIGTERM信號終止進程。
示例輸出
Enter the process name to kill (e.g., firefox): firefox Terminated process firefox (PID: 5678)
注意事項
- 權(quán)限問題:終止某些系統(tǒng)進程可能需要管理員權(quán)限(Windows)或root權(quán)限(Linux)。建議以管理員身份運行腳本。
- 數(shù)據(jù)丟失風險:Windows腳本使用強制終止(
/F),可能導致未保存的數(shù)據(jù)丟失。Linux腳本使用SIGTERM進行優(yōu)雅終止,但若進程未響應(yīng),可修改為SIGKILL(需謹慎)。 - 進程名匹配:腳本忽略大小寫,并為Windows自動處理
.exe擴展名。若進程名不唯一,可能終止所有匹配的進程。 - 錯誤處理:腳本會捕獲權(quán)限錯誤和找不到進程的情況,并提供清晰的錯誤提示。
擴展可能性
這兩個腳本是基礎(chǔ)實現(xiàn),可以根據(jù)需求擴展:
- 添加正則表達式支持,匹配更復(fù)雜的進程名。
- 增加確認提示,避免意外終止進程。
- 支持批量終止多個進程名。
- 在Linux上支持
SIGKILL作為強制終止的備選。
總結(jié)
這兩個Python腳本為Windows和Linux用戶提供了一種簡單的方式來終止進程,只需輸入進程名即可。它們利用psutil庫實現(xiàn)了跨平臺的進程管理,適合快速調(diào)試或自動化任務(wù)。希望這些腳本能幫助你更高效地管理系統(tǒng)資源!
到此這篇關(guān)于使用Python在Windows和Linux上終止進程的簡易腳本分享的文章就介紹到這了,更多相關(guān)Python終止Windows和Linux進程內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Python?操作?MongoDB數(shù)據(jù)庫的方法(非?ODM)
這篇文章主要介紹了Python?操作?MongoDB?----非?ODM的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-03-03
詳解Ubuntu環(huán)境下部署Django+uwsgi+nginx總結(jié)
這篇文章主要介紹了Ubuntu環(huán)境下部署Django+uwsgi+nginx總結(jié),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-04-04
Python實現(xiàn)跨平臺桌面應(yīng)用程序開發(fā)的完整指南
在當今軟件開發(fā)領(lǐng)域,跨平臺應(yīng)用程序開發(fā)變得越來越重要,下面我們就來探討使用Python進行跨平臺桌面應(yīng)用程序開發(fā)的主要框架,工具和最佳實踐吧2025-04-04
淺談Python從全局與局部變量到裝飾器的相關(guān)知識
今天給大家?guī)淼氖顷P(guān)于Python的相關(guān)知識,文章圍繞著Python從全局與局部變量到裝飾器的相關(guān)知識展開,文中有非常詳細的介紹及代碼示例,需要的朋友可以參考下2021-06-06
python實現(xiàn)根據(jù)窗口標題調(diào)用窗口的方法
這篇文章主要介紹了python實現(xiàn)根據(jù)窗口標題調(diào)用窗口的方法,涉及Python操作窗口的技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-03-03
Python文件操作及內(nèi)置函數(shù)flush原理解析
這篇文章主要介紹了Python文件操作及內(nèi)置函數(shù)flush原理解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-10-10

