對於乙個執行中的程序,我們可以使用kill -stop pid命令將其暫停執行,使用kill -cont pid命令恢復其執行。
下面用乙個 test.py 例項說明:
#coding: utf-8
import time
i = 1
while true:
i = i + 1
time.sleep(2)
print(i)
開啟終端,執行 ps -aux | grep python3,顯示結果如下:
xsj 6774
0.00.0
30616
9176 pts/1 s 10:34
0:00 python3 test.py
程序狀態顯示 s 或 r,表示程式在執行
使用kill -stop 命令將該程序暫停:
xsj 6774
0.00.0
30616
9176 pts/1 t 10:34
0:00 python3 test.py
此刻程序處於暫停狀態了(t)
使用kill -cont 命令將程序恢復:
xsj 6774
0.00.0
30616
9176 pts/1 s 10:34
0:00 python3 test.py
程序恢復執行狀態(r 或 s)
附:
ps 的用法:
常用引數
-a 顯示所有程序(等價於-e)(utility)
-a 顯示乙個終端的所有程序,除了會話引線
-n 忽略選擇。
-d 顯示所有程序,但省略所有的會話引線(utility)
-x 顯示沒有控制終端的程序,同時顯示各個命令的具體路徑。dx不可合用。(utility)
-p pid 程序使用cpu的時間
-u uid or username 選擇有效的使用者id或者是使用者名稱
-g gid or groupname 顯示組的所有程序。
u username 顯示該使用者下的所有程序,且顯示各個命令的詳細路徑。如:ps u zhang;(utility)
-f 全部列出,通常和其他選項聯用。如:ps -fa or ps -fx and so on.
-l 長格式(有f,wchan,c 等字段)
-j 操作格式
-o 使用者自定義格式。
v 以虛擬儲存器格式顯示
s 以訊號格式顯示
-m 顯示所有的執行緒
-h 顯示程序的層次(和其它的命令合用,如:ps -ha)(utility)
e 命令之後顯示環境(如:ps -d e; ps -a e)(utility)
h 不顯示第一行
au(x) 輸出格式 :
user pid %cpu %mem vsz rss tty stat start time command
user: 行程擁有者
pid: pid
%cpu
: 占用的 cpu 使用率
%mem
: 占用的記憶體使用率
vsz: 占用的虛擬記憶體大小
rss: 占用的記憶體大小
tty: 終端的次要裝置號碼 (minor device number of tty)
stat: 該行程的狀態:
d: 不可中斷的靜止
r: 正在執行中
s: 靜止狀態
t: 暫停執行
z: 不存在但暫時無法消除
w: 沒有足夠的記憶體分頁可分配
<: 高優先序的行程
n: 低優先序的行程
l: 有記憶體分頁分配並鎖在記憶體內 (即時系統或挨a i/o)
start: 行程開始時間
time: 執行的時間
command:所執行的指令
程序stat狀態:
d 無法中斷的休眠狀態(通常 io 的程序);
r 正在執行,在可中斷佇列中;
s 處於休眠狀態,靜止狀態;
t 停止或被追蹤,暫停執行;
w 進入記憶體交換(從核心2.6開始無效);
x 死掉的程序;
z 殭屍程序不存在但暫時無法消除;
w: 沒有足夠的記憶體分頁可分配
wchan 正在等待的程序資源;
<: 高優先順序程序
n: 低優先序程序
l: 有記憶體分頁分配並鎖在記憶體內 (即時系統或挨a i/o),即,有些頁被鎖進記憶體
s 程序的領導者(在它之下有子程序);
l 多程序的(使用 clone_thread, 類似 nptl pthreads);
+ 位於後台的程序組;
kill 終止程序有十幾種控制程序的方法,下面是一些常用的方法:
kill -stop [pid]
傳送sigstop (17,19,23)停止乙個程序,而並不消滅這個程序。
kill -cont [pid]
傳送sigcont (19,18,25)重新開始乙個停止的程序。
kill -kill [pid]
傳送sigkill (9)強迫程序立即停止,並且不實施清理操作。
kill -9 -1
終止你擁有的全部程序。
sigkill 和 sigstop 訊號不能**捉、封鎖或者忽略,但是,其它的訊號可以。所以這是你的終極**。 linux 恢復與暫停程序
對於乙個執行中的程序,我們可以使用kill stop pid命令將其暫停執行,使用kill cont pid命令恢復其執行。下面用乙個 test.py 例項說明 coding utf 8 import time i 1 while true i i 1 time.sleep 2 print i 開啟...
linux中線程的掛起與恢復(程序暫停)
今天在網上查了一下linux中對程序的掛起與恢復的實現,相關資料少的可憐,大部分都是貼上複製。也沒有完整詳細的 故自己整理了一下 程式流程為 主線程建立子執行緒 當前子執行緒狀態為stop停止狀態 5秒後主執行緒喚醒子執行緒,10秒後主執行緒掛起子執行緒,15秒後主執行緒再次喚醒子執行緒,20秒後主...
linux中線程的掛起與恢復(程序暫停)
今 天在網上查了一下 linux中對程序的掛起與恢復的實現,相關資料少的可憐,大部分都是貼上複製。也沒有完整詳細的 故自己整理了一下 程式流程為 主線程建立子執行緒 當前子執行緒狀態為stop停止狀態 5秒後主執行緒喚醒子執行緒,10秒後主執行緒掛起子執行緒,15秒後主執行緒再次喚醒子執行緒,20秒...