`

Linux_杀死进程的N种方法

 
阅读更多

via: http://blog.csdn.net/andy572633/article/details/7211546

 

linux下杀死进程的N种方法

 

把ps的查询结果通过管道给grep查找包含特定字符串的进程。管道符“|”用来隔开两个命令,管道符左边命令的输出会作为管道符右边命令的输入。

$ ps -ef | grep firefox

smx       1827     1  4 11:38 ?        00:27:33 /usr/lib/firefox-3.6.18/firefox-bin

smx      12029  1824  0 21:54 pts/0    00:00:00 grep --color=auto firefox

 

这次就清爽了。然后就是 

$kill -s 9 1827

 

改进2——使用pgrep:

 

一看到pgrep首先会想到什么?没错,grep!pgrep的p表明了这个命令是专门用于进程查询的grep。

$ pgrep firefox

1827

看到了什么?没错火狐的PID,接下来又要打字了: 

$kill -s 9 1827

 

改进3——使用pidof:

看到pidof想到啥?没错pid of xx,字面翻译过来就是 xx的PID。

$ pidof firefox-bin

1827

和pgrep相比稍显不足的是,pidof必须给出进程的全名。然后就是老生常谈:

$kill -s 9 1827

 

无论使用ps 然后慢慢查找进程PID 还是用grep查找包含相应字符串的进程,亦或者用pgrep直接查找包含相应字符串的进程PID,然后手动输入给kill杀掉,都稍显麻烦。有没有更方便的方法?有!

 

改进4:

$ps -ef | grep firefox | grep -v grep | cut -c 9-15 | xargs kill -s 9

 

说明:

“grep firefox”的输出结果是,所有含有关键字“firefox”的进程。

“grep -v grep”是在列出的进程中去除含有关键字“grep”的进程。

“cut -c 9-15”是截取输入行的第9个字符到第15个字符,而这正好是进程号PID。

“xargs kill -s 9”中的xargs命令是用来把前面命令的输出结果(PID)作为“kill -s 9”命令的参数,并执行该命令。“kill -s 9”会强行杀掉指定进程。

 

难道你不想抱怨点什么?没错太长了

 

改进5:

知道pgrep和pidof两个命令,干嘛还要打那么长一串!

$ pgrep firefox | xargs kill -s 9

 

改进6:

$ ps -ef | grep firefox | awk '{print $2}' | xargs kill -9

kill: No such process

有一个比较郁闷的地方,进程已经正确找到并且终止了,但是执行完却提示找不到进程。

 

其中awk '{print $2}' 的作用就是打印(print)出第二列的内容。根据常规篇,可以知道ps输出的第二列正好是PID。就把进程相应的PID通过xargs传递给kill作参数,杀掉对应的进程。

 

改进7:

难道每次都要调用xargs把PID传递给kill?答案是否定的:

$kill -s 9 `ps -aux | grep firefox | awk '{print $2}'`

 

改进8:

没错,命令依然有点长,换成pgrep。

$kill -s 9 `pgrep firefox`

 

改进9——pkill:

看到pkill想到了什么?没错pgrep和kill!pkill=pgrep+kill。

 

$pkill -9 firefox

说明:"-9" 即发送的信号是9,pkill与kill在这点的差别是:pkill无须 “s”,终止信号等级直接跟在 “-“ 后面。之前我一直以为是 "-s 9",结果每次运行都无法终止进程。

 

改进10——killall:

killall和pkill是相似的,不过如果给出的进程名不完整,killall会报错。pkill或者pgrep只要给出进程名的一部分就可以终止进程。

 

$killall -9 firefox

 

分享到:
评论

相关推荐

    Linux_unix_shell第一部分编程(共两部分)

    3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup命令提交作业 29 3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 ...

    Shell脚本实现根据端口号kill相应进程功能

    Linux根据占用的端口号来关闭相应的进程的shell脚本写法。   代码如下: kill -9 $(lsof -i:22 |awk ‘{print $2}’ | tail -n 2)

    一个进程池的服务器程序

    当父进程发现子进程数大于请求数加1时,父进程杀死多余的子进程。 总的来说,思想是让子进程accept并处理请求,父进程通过子进程发来的信息控制请求数与子进程数之间的关系。 代码如下: 代码如下: #include #...

    Linux操作系统实验三.doc

    (6)kill命令:来杀死程序产生的进程来结束程序的运行。 格式1 : kill PID 格式2 : kill -9 PID “-9”为SIGKILL信号,属于强制结束 (7)前台与后台运行相关命令 command、command & 6、系统的服务管理命令 (1) ...

    LINUX与UNIX_Shell编程指南

    3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup命令提交作业 29 3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33...

    入门学习Linux常用必会60个命令实例详解doc/txt

    halt执行时,杀死应用进程,执行sync(将存于buffer中的资料强制写入硬盘中)系统调用,文件系统写操作完成后就会停止内核。若系统的运行级别为0或6,则关闭系统;否则以shutdown指令(加上-h参数)来取代。  ...

    大数据linux命令.pdf

    进程管理 ps -aux:查看当前进程 kill 进程号 杀死进程 14.rpm和yum包管理器 rpm相当于windows的setup.exe 14.1 rpm –qa 查询已安装的rpm列表 rpm -e firefox 卸载软件包 14.2 yum管理器可以⾃动下载RPM包并安装 15...

    LINUX与UNIX SHELL编程指南(很全)

    3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup命令提交作业 29 3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 ...

    LINUX与UNIX_SHELL编程指南2

    shell 工具 289 <br>26.1 创建保存信息的文件 289 <br>26.1.1 使用date命令创建日志文件 289 <br>26.1.2 创建唯一的临时文件 290 <br>26.2 信号 291 <br>26.2.1 杀死一个进程 292 <br>26.2.2 检测...

    Linux中解除端口占用的方法

    在本例中,假设8080端口被占用。 1.查看8080端口是否被占用 netstat -anp | grep 8080 输出结果:tcp 0 0 :::8080 :::* LISTEN 3000/java 由上可知8080端口已经被开启。...3.杀死占用8080端口的进程:

    LINUX与UNIX_Shell编程指南(下)

    26.2.1 杀死一个进程 292 26.2.2 检测信号 293 26.3 trap 294 26.3.1 捕获信号并采取相应的行动 294 26.3.2 捕获信号并采取行动的另 一个例子 295 26.3.3 锁住终端 297 26.3.4 忽略信号 298 26.4 eval 300 26.4.1 ...

    Linux shell编程指南

    3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup命令提交作业 29 3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 ...

    Linux操作系统基础教程

    Linux 操作系统基础教程 清华大学信息学院计算机系 ...从网上下载的,但是我不推荐易用这种方法得到 Linux,因为仅仅核心就有几十个 Mbit 的 数据量,而一个完整的发行版本大概都是 1Gbit 左右的数据量...

    绝版经典《Linux与UNIX Shell编程指南》

    3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup命令提交作业 29 3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 ...

    Linux与unix shell编程指南

    3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup命令提交作业 29 3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 ...

    嵌入式系统/ARM技术中的Linux嵌入式实时操作系统开发与设计(6)

    测试的结果如表5.1所示: 负载类型 平均值 最小值 最大值 无负载 2.36 2.10 15.50 硬盘循环拷贝 3.20 2.10 19.40 计算负载 2.56 2.20 14.50 表5.1 实时中断延迟时间(单位:微秒) n 无负载:所有进程已经杀死 n ...

    LINUX与UNIX SHELL编程指南 高清PDF

    3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup命令提交作业 29 3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 ...

    linux shell 编程教程

    3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup命令提交作业 29 3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 ...

    LINUX 与 UNIX SHELL编程指南

    3.3.3 杀死后台进程 28 3.4 nohup 命令 29 3.4.1 使用 nohup 命令提交作业 29 3.4.2 一次提交几个作业 29 3.5 小结 30 第 4 章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小...

    LINUX与UNIX SHELL编程指南

    3.3.3 杀死后台进程 28 3.4 nohup命令 29 3.4.1 使用nohup命令提交作业 29 3.4.2 一次提交几个作业 29 3.5 小结 30 第4章 文件名置换 31 4.1 使用* 31 4.2 使用? 32 4.3 使用[...]和[!...] 32 4.4 小结 33 第5章 ...

Global site tag (gtag.js) - Google Analytics