有時候我們需要通過命令列關閉特定程序,對於指定程序號的關閉很容易,但是如果需要關閉指定的程式或者關閉指定路徑下的程式則變得不那麼容易,下面我們將會對此進行討論。另外,很多方式都會有許可權限制,所以可以適時採用sudo
方式執行。
gnome-system-monitor
是ubuntu系統自帶的資源管理器,可以讓我們在介面中動態檢視所有程序資源以及計算記憶體消耗情況,可直接在命令列中輸入gnome-system-monitor
:
top
也是ubuntu系統自帶的乙個系統資源監控指令,同樣是在命令列執行:
其中上方的%cpu
的意義如下:
us — 使用者空間占用cpu的百分比。
sy — 核心空間占用cpu的百分比。
ni — 改變過優先順序的程序占用cpu的百分比
id — 空閒cpu百分比
wa — io等待占用cpu的百分比
hi — 硬中斷(hardware irq)占用cpu的百分比
si — 軟中斷(software interrupts)占用cpu的百分比
而下方的則是各個程序的詳細資訊,其中要注意的是:
pid: 程序號
user: 程序所有者
pr: 程序優先順序
virt: 程序所佔虛擬記憶體大小,單位:b
res: 程序所佔物理記憶體大小,單位:b
shr: 程序所佔共享記憶體大小,單位:b
%cpu: 程序所佔cpu使用率
%mem:程序所佔記憶體使用率
time+: 程序啟動後所佔總的cpu時間
command: 程序命令名
特別的,鍵盤按下1
會顯示所有核的資訊,按下q
會退出當前視窗。
htop
相對top
來說,是乙個更加清晰的系統資源監控器,不過需要先安裝:
sudo apt install
htop
同樣在命令列執行:
指定程序號,如果要關閉其對應程序,只需要執行:
kill 程序號
kill -15 程序號
以上兩種方式會關閉正在執行的程序,不過依然會有部分程式會延時相應,或者不相應,所以我們可以強制關閉:
kill -9 程序號
程序號一定要填,不然預設關閉所有程序,包括我們的系統程序。
ubuntu提供了直接關閉程序的指令killall
和pkill
:
killall 程序名
pkill 程序名
不過這兩個方法有三個缺點:
我們可以看到,僅僅-e
所能匹配的程序不全,但是-ef
能匹配更詳細的命令列資訊,更重要的是這種方式不是完整匹配,而是部分匹配。
有了這些程序的查詢方式,那麼關閉程序就很容易了,那麼,如果我們想要一次性執行查詢和關閉怎麼辦?可以利用xargs
命令:
pidof python |
xargs
kill -9
pgrep python |xags kill -9
ps -ef |
grep python |
awk''
|xargs
kill -9
python自身可以利用os
模組的system
功能執行命令列指令,如:
os.system(
'kill -9 程序號'
)
另外python也可以獲取自身程式的程序號:
os.getpid(
)
psutil庫能夠輕鬆實現獲取系統執行的程序和系統利用率(包括cpu、記憶體、磁碟、網路等)資訊,它主要用來做系統監控,效能分析,程序管理。其安裝方式如下:
pip install psutil
這裡我不介紹其詳細功能,只介紹如何利用其關閉特定程序。
那麼我們可以這樣進行匹配,假如我們要關閉包含train
字樣的python程序,那麼可以:
import psutil
import os
for i in psutil.pids():
try:
p = psutil.process(i)
if p.name()==
'python'
and'train'
in''
.join(p.cmdline())
: os.system(
'kill -9 '
+str
(i))
except exception:
pass
之所以要加入保護,是因為程序隨時都處於啟動和關閉狀態,有的程序可能在處理過程中關閉了。 TASKKILL關閉指定程序
taskkill s system u username p password f t 描述 這個命令列工具可用來結束至少乙個程序。可以根據程序 id 或影象名來結束程序。引數列表 s system 指定要連線到的遠端系統。u domain user 指定應該在哪個使用者上下文 執行這個命令。p p...
關閉指定埠程序
我使用idea的時候經常性會出現閃退,暫時沒有找到原因 不是超記憶體 閃退後最主要的乙個問題就是埠會被之前的程式繼續佔據,導致重新進入之後如果不把指定埠上的程序關閉就會出現以下錯誤 解決方法 進入執行 win r 輸入cmd 輸入netstat ano findstr 8080 最後一列是程序號,關...
shell指令碼實現關閉指定程式名的程序
shell指令碼實現關閉指定程式名的程序 1 基礎篇 在linux系統下,我們進行程式除錯或者是進行應用程式公升級時,經常需要先對我們的目標程式進行kill關閉。此時最基礎的辦法就是先查找到目標程序的pid,然後再執行kill命令去關閉目標程序。接著直接執行kill 9 15889就可以關閉掉此sv...