仓酷云

标题: linux教程之linux杀历程的多种办法 [打印本页]

作者: 透明    时间: 2015-1-16 15:23
标题: linux教程之linux杀历程的多种办法
开发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命令。
作者: 山那边是海    时间: 2015-1-25 16:01
我是学习嵌入式方向的,这学期就选修了这门专业任选课。
作者: 老尸    时间: 2015-2-3 09:31
下面看看一个让人无法回答的问题:“救命各位高手,向你们请教一些问题:如何在Linux下配制HTTP、FTP、Samba、DNS、DHCP、Sendmail服务器,谢谢”这样的问题。
作者: 冷月葬花魂    时间: 2015-2-8 20:29
Windows?是图形界面的,Linux类似以前的?DOS,是文本界面的,如果你运行了图形界面程序X-WINDOWS后,Linux?也能显示图形界面,也有开始菜单、桌面、图标等。
作者: 只想知道    时间: 2015-2-26 06:11
一些显而易见的小错误还是用vi改正比较方便。以后的大一点的程序就得在Linux下调试了,因为有的头文件在VC里面说找不到。?
作者: 蒙在股里    时间: 2015-3-8 12:30
当然你不需搭建所有服务,可以慢慢来。自己多动手,不要非等着别人帮你解决问题。
作者: 灵魂腐蚀    时间: 2015-3-16 00:02
掌握硬件配置,如显卡,声卡,网卡等,硬件只要不是太老或太新一般都能被支持,作为一名Linux系统管理员建议多阅读有关硬件配置文章,对各种不支持或支持不太好的硬件有深刻的了解。
作者: 活着的死人    时间: 2015-3-22 18:10
学习Linux半年了~个人认为不会的多在网上找资料网上有很多资料可以搜索到,LS那位说放手去搞。




欢迎光临 仓酷云 (http://ckuyun.com/) Powered by Discuz! X3.2