马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
开发linux发行版的人都是通读过linux内核代码,对linux原理极其精通的人。
惯例篇:
起首,用ps检察历程,办法以下:
.代码以下:
$ps-ef
$ps-ef
……
smx18221011:38?00:00:49gnome-terminal
smx18231822011:38?00:00:00gnome-pty-helper
smx18241822011:38pts/000:00:02bash
smx18271411:38?00:26:28/usr/lib/firefox-3.6.18/firefox-bin
smx18571822011:38pts/100:00:00bash
smx18801619011:38?00:00:00update-notifier
……
smx119461824021:41pts/000:00:00ps-ef
大概:
.代码以下:
$ps-aux
……
smx18220.10.85848418152?Sl11:380:49gnome-terminal
smx18230.00.01988712?S11:380:00gnome-pty-helper
smx18240.00.168203776pts/0Ss11:380:02bash
smx18274.35.8398196119568?Sl11:3826:13/usr/lib/firefox-3.6.18/firefox-bin
smx18570.00.166883644pts/1Ss11:380:00bash
smx18800.00.64153612620?S11:380:00update-notifier
……
smx119530.00.027161064pts/0R+21:420:00ps-aux
此时假如我想杀了火狐的历程就在终端输出:
.代码以下:
$kill-s91827
个中-s9制订了传送给历程的旌旗灯号是9,即强迫、尽快停止历程。各个停止旌旗灯号及其感化见附录。
1827则是下面ps查到的火狐的PID。
复杂吧,但有个成绩,历程少了则无所谓,历程多了,就会以为疾苦了,不管是ps-ef仍是ps-aux,每次都要在一年夜串历程信息内里查找到要杀的历程,看的眼都花了。
进阶篇:
改善1:
把ps的查询了局经由过程管道给grep查找包括特定字符串的历程。管道符“|”用来离隔两个命令,管道符右边命令的输入会作为管道符右侧命令的输出。
.代码以下:
$ps-ef|grepfirefox
smx18271411:38?00:27:33/usr/lib/firefox-3.6.18/firefox-bin
smx120291824021:54pts/000:00:00grep--color=autofirefox
此次就清新了。然后就是
.代码以下:
$kill-s91827
改善2――利用pgrep:
一看到pgrep起首会想到甚么?没错,grep!pgrep的p标明了这个命令是专门用于历程查询的grep。
.代码以下:
$pgrepfirefox
1827
看到了甚么?没错火狐的PID,接上去又要打字了:
$kill-s91827
改善3――利用pidof:
看到pidof想到啥?没错pidofxx,字面翻译过去就是xx的PID。
.代码以下:
$pidoffirefox-bin
1827
和pgrep比拟稍显不敷的是,pidof必需给出历程的全名。然后就是陈词滥调:
.代码以下:
$kill-s91827
不管利用ps然后渐渐查找历程PID仍是用grep查找包括响应字符串的历程,亦大概用pgrep间接查找包括响应字符串的历程PID,然先手动输出给kill杀失落,都稍显贫苦。有无更便利的办法?有!
改善4:
.代码以下:
$ps-ef|grepfirefox|grep-vgrep|cut-c9-15|xargskill-s9
申明:
“grepfirefox”的输入了局是,一切含有关头字“firefox”的历程。
“grep-vgrep”是在列出的历程中往除含有关头字“grep”的历程。
“cut-c9-15”是截取输出行的第9个字符到第15个字符,而这恰好是历程号PID。
“xargskill-s9”中的xargs命令是用来把后面命令的输入了局(PID)作为“kill-s9”命令的参数,并实行该命令。“kill-s9”会强行杀失落指定历程。
岂非你不想埋怨点甚么?没错太长了
改善5:
晓得pgrep和pidof两个命令,干吗还要打那末长一串!
.代码以下:
$pgrepfirefox|xargskill-s9
改善6:
.代码以下:
$ps-ef|grepfirefox|awk{print$2}|xargskill-9
kill:Nosuchprocess
有一个对照忧郁的中央,历程已准确找到而且停止了,可是实行完却提醒找不到历程。
个中awk{print$2}的感化就是打印(print)出第二列的内容。依据惯例篇,能够晓得ps输入的第二列恰好是PID。就把历程响应的PID经由过程xargs传送给kill作参数,杀失落对应的历程。
改善7:
岂非每次都要挪用xargs把PID传送给kill?谜底是不是定的:
.代码以下:
$kill-s9`ps-aux|grepfirefox|awk{print$2}
改善8:
没错,命令仍然有点长,换成pgrep。
.代码以下:
$kill-s9`pgrepfirefox`
改善9――pkill:
看到pkill想到了甚么?没错pgrep和kill!pkill=pgrep+kill。
.代码以下:
$pkill-9firefox
申明:"-9"即发送的旌旗灯号是9,pkill与kill在这点的不同是:pkill不必“s”,停止旌旗灯号品级间接跟在“-“前面。之前我一向觉得是"-s9",了局每次运转都没法停止历程。
改善10――killall:
killall和pkill是类似的,不外假如给出的历程名不完全,killall会报错。pkill大概pgrep只需给出历程名的一部分就能够停止历程。
.代码以下:
$killall-9firefox
当你经过一段时间的学习后就应该扩充自己的知识,多学习linux命令,但是不要在初学阶段就系统的学习linux命令。 |