系統(tǒng)之家 - 系統(tǒng)光盤下載網(wǎng)站!

當(dāng)前位置:系統(tǒng)之家 > 系統(tǒng)教程 > Linux使用kill命令

Linux使用kill命令的注意事項(xiàng)

時(shí)間:2015-08-20 10:54:13 作者:zhijie 來(lái)源:系統(tǒng)之家 1. 掃描二維碼隨時(shí)看資訊 2. 請(qǐng)使用手機(jī)瀏覽器訪問: https://m.xitongzhijia.net/xtjc/20150820/55845.html 手機(jī)查看 評(píng)論

  Linux系統(tǒng)下有一個(gè)直接終止進(jìn)程的命令,這個(gè)命令的代碼也是非常霸氣,直接就是英文的kill。既然這個(gè)命令這么有“殺氣”,為了防止“誤傷”,下面小編就給大家來(lái)普及一下Linux使用kill命令的注意事項(xiàng)。

Linux使用kill命令的注意事項(xiàng)

  使用kill命令注意事項(xiàng)

  1、在檢查一個(gè)角本Bug的時(shí)候,你會(huì)發(fā)現(xiàn)killall命令與kill命令的一個(gè)不同之處: 假設(shè)有腳本 test.pl ,假設(shè)內(nèi)容如下: #!/usr/bin/perl -w sleep 60;

  則測(cè)試結(jié)果如下: 1、如果通過(guò) /home/MNET/m_yancyliu/tmp/x.pl 命令啟動(dòng),此時(shí)ps下命令行顯示如下: /usr/bin/perl -w /home/MNET/m_yancyliu/tmp/x.pl

  結(jié)果如下: killall x.pl 命令可以殺掉該腳本,

  killall perl 命令則無(wú)法殺掉該進(jìn)程

  2、 如果通過(guò) /usr/bin/perl -w /home/MNET/myancyliu/tmp/x.pl 命令啟動(dòng),此時(shí)ps下命令行顯示: /usr/bin/perl -w /home/MNET/m_yancyliu/tmp/x.pl

  結(jié)果如下: killall perl 命令可以殺掉該進(jìn)程

  killall x.pl 命令則無(wú)法殺掉該進(jìn)程 此時(shí),如果通過(guò) ps uxfww 命令查看對(duì)應(yīng)的進(jìn)程樹,會(huì)發(fā)現(xiàn)上面兩種啟動(dòng)方式的進(jìn)程樹是一樣的: (如果要查看所有進(jìn)程的進(jìn)程樹,可以使用命令 ps axfww) \ -eash | _ /bin/bash | _ /usr/bin/perl -w /home/MNET/m_yancyliu/tmp/test.pl

  上面的結(jié)果顯示,盡管通過(guò) ps -ef 命令看到的命令行顯示是相同的,但操作系統(tǒng)仍然會(huì)記錄該進(jìn)程的啟動(dòng)信息。

  1、直接通過(guò)腳本名調(diào)用時(shí),OS認(rèn)為進(jìn)程對(duì)應(yīng)的程序名就是腳本名,因?yàn)檫M(jìn)程是通過(guò)腳本名啟動(dòng)的。 2、如果通過(guò) perl 或 shell 加載腳本名的方式調(diào)用時(shí),操作系統(tǒng)會(huì)認(rèn)為進(jìn)程的程序名稱是 perl/shell,而腳本名則是做為進(jìn)程的參數(shù)傳入,因?yàn)榇藭r(shí)進(jìn)程是通過(guò)perl/shell啟動(dòng)的。

  至于操作系統(tǒng)是如何區(qū)分出這兩種方式的呢,這里對(duì)比兩種啟動(dòng)方式下的 /proc/$pid 目錄: 1、直接通過(guò)腳本名調(diào)用時(shí),/proc/$pid 目錄下內(nèi)容如下: cmdline文件中內(nèi)容為: usr/bin/perl -w /home/MNET/m_yancyliu/tmp/test.pl stat文件內(nèi)容為:

  12242 (test.pl) S 3102 12242 3102 9472041 12242 8396800 456 0 3 0 0 0 0 0 18 0 1 0 357357658 4358144 361 4294967295 134512640 135656772 3215679088 3215678100 3084573003 0 0 128 0 3741425540 0 0 17 3 0 0

  2、通過(guò) perl 加載腳本名時(shí),/proc/$pid 目錄下內(nèi)容如下:

  cmdline文件中內(nèi)容為: usr/bin/perl -w /home/MNET/m_yancyliu/tmp/test.pl

  stat文件內(nèi)容為:

  13372 (perl) S 3102 13372 3102 9472041 13372 8396800 460 0 0 0 0 0 0 0 18 0 1 0 357376374 4358144 362 4294967295 134512640 135656772 3218100000 3218099012 3084704075 0 0 128 0 3577044868 0 0 17 2 0 0

  顯然,我們使用 ps 命令看到的進(jìn)程統(tǒng)計(jì)信息,是與 /proc/$pid/cmdline中看到的一致。 而在進(jìn)程的cpu統(tǒng)計(jì)信息 /proc/$pid/stat 中看到的內(nèi)容則是不同的,這里標(biāo)識(shí)了操作系統(tǒng)認(rèn)可的程序名稱,即進(jìn)程是如何啟動(dòng)的。上面第一個(gè)數(shù)字均為進(jìn)程ID。

  于是,根據(jù)進(jìn)程的CPU活動(dòng)統(tǒng)計(jì)信息,killall命令能夠區(qū)分兩種不同的方式啟動(dòng)的進(jìn)程,從而做出不同的處理。 對(duì)于這兩種啟動(dòng)方式引起的不同,在使用 killall 命令時(shí)要注意,在使用命令行啟動(dòng)進(jìn)程時(shí)也要注意。

  以上就是Linux使用kill命令的注意事項(xiàng)了,kill命令已經(jīng)很有力度了,居然還有個(gè)killall(殺死全部),這也真夠了。

標(biāo)簽 命令

發(fā)表評(píng)論

0

沒有更多評(píng)論了

評(píng)論就這些咯,讓大家也知道你的獨(dú)特見解

立即評(píng)論

以上留言僅代表用戶個(gè)人觀點(diǎn),不代表系統(tǒng)之家立場(chǎng)

其他版本軟件

熱門教程

人氣教程排行

Linux系統(tǒng)推薦

官方交流群 軟件收錄