程序的控制與刪除
使用kill
命令可以終止程序.通常
,終止乙個前台程序可以使用
ctrl+c鍵,
但是對於乙個後台程序就必須使用
kill
命令來終止
,我們需要先使用
ps/pidof/pstree/top
等工具獲取程序
pid,
然後使用
kill
命令來殺掉程序
.kill
命令是通過向程序傳送指定的訊號來結束相應程序的
.在預設情況下
,採用編號為15的
trem
訊號.term
訊號將終止所有不能獲取該訊號的程序
.對於那些可以獲取該訊號的程序就要用編號為9的
kill訊號,
強行」殺掉」該程序.
kill命令詳解
1.格式:
kill [引數
] [程序號
,也就是
pid]
2.功能:
傳送指定的訊號到相應程序.
不指定型號將傳送
sifterm(15)
終止指定程序
.如果無法終止該程序可以使用」-kill」引數,
其傳送的訊號為
sigkill(9),
將強制結束程序,使用
ps命令或者
jobs
命令可以檢視程序號
.root
使用者將影響使用者的程序,非
root
使用者只能影響自己的程序.
3.引數
引數說明
-l(小寫字母)
訊號,如果不加訊號的編號引數
,則使用」-l」引數會列出全部的訊號名稱
-a當初李當前程序是,
不限制命令名或程序號的對應關係 -p
指定kill
命令只列印相關程序的程序號
,而不傳送任何訊號 -s
指定傳送訊號
-u指定使用者
注意:
1.kill命令可以帶訊號號碼選項
,也可以不帶
.如果沒有訊號好嗎
,kill
命令就會發出終止訊號
(15),
這個訊號可以被程序捕獲
,是的程序在推出之前可以清理並釋放資源
.也可以用
kill
向程序傳送特定的訊號.例如
: kill -2 123 //它的效果等同於在前台執行
pid為
123的程序同時按下
ctrl+c鍵.
但是,普通使用者只能使用不帶
signal
引數的kill
命令或最多使用
-9訊號.
2.kill可以帶有程序
id號作為引數.當用
kill
想這些程序傳送訊號時
,必須是這些程序的主人
.如果試圖撤銷乙個沒有撤銷許可權的程序或撤銷乙個不存在的程序
,就會得到乙個錯誤資訊.
3.可以向多個程序發訊號或終止它們.
4.當kill
成功的傳送了訊號後
,shell
會在螢幕上顯示出程序的終止資訊
.有時這個資訊不會馬上顯示
,只有當按下
enter
鍵使shell
的命令提示符再次出現時
,才會顯示出來.
5.應注意,
訊號使程序強行終止
,這常會帶來一些***
,如資料丟失後者終端無法恢復到正常狀態
.傳送訊號時必須小心
,只有在萬不得已時,採用
kill
訊號(9),
因為程序不能首先捕獲它要撤銷所有的後台作業
,可以輸入
kill 0.
因為有些在後台執行的命令會啟動多個程序
,跟蹤並找到所有要殺掉的程序的
pid是件很麻煩的事.這時
,使用kill 0
來終止所有當前
shell
啟動的程序
,是個有效的方法.
4.案例
案例1:
#kill -l //列出所有的訊號名稱
在輸出中,
只有第9
種訊號(sigkill)
才可以無條件終止程序
,其他訊號程序都有權利忽略
.以下是常用的訊號:
訊號名稱
編號說明
hup終端斷線
int中斷(
同ctrl+c)
quit
退出(同
ctrl)
term
終止kill
強制終止
cont
繼續(與
stop
相反,fg/bg命令)
stop
暫停(同
ctrl+z)
案例2:
得到指定訊號的數值
(不區分大小寫)
#kill -l term
#kill -l kill
#kill -l sigkill
案例3:
配合ps命令,
使用kill
殺掉程序
#ps -ef | grep vim //得到關於
vim程序的
pid,
比如得到的
pid是
111
#kill 111 //刪除
vim程序
案例4:
徹底殺死程序
#kill -9 111
案例5:
殺死指定使用者的所有程序
#kill -9 $(ps -ef| grep username) //方法1
#kill -u username //方法2
案例6:init
程序(pid為1)
是不可殺的
#kill -9 1
這是因為init
是linux
系統中不可缺少的程式之一
.所謂的
init程序,
他是乙個有核心啟動的使用者級程序
.核心自行啟動
(已經被載入記憶體
,開始執行
,並已初始化所有的裝置驅動程式和資料結構等)之後
,就通過啟動乙個使用者級程式
init
的方式,
完成引導程序.所以
,init
時鐘是第乙個程序
(其程序編號始終為
1).其他所有程序都是
init
程序的子孫
.init
程序是不可殺死的
.不夠貌似
init
程序的作用正在被逐漸弱化
.
PYTHON第五十二天筆記11 7
繼承 字型樣式可以繼承。內聯標籤加上float屬性,可以設長寬。line height對於image無效。內連設定長寬 加float浮動或display inline block,block。課堂 1 抽屜作業標題部分 doctype html html lang en head meta char...
rhce學習第十二天
selinux 基於 samba 需要修改的內容 root server1 pub mkdir ccc root server1 pub chmod 777 ccc root server1 pub ls z etc samba rw r r root root system u object r ...
學習Python 第十二天
列表 鍊錶 1 棧 filo 先進後出 2 佇列 fifo 先進先出 普通佇列 class myquene object def init self,list self.list list def size self return len self.list def delete self if s...