终止一个进程或终止一个正在运行的程序,一般是通过kill 、killall、pkill、xkill 等进行。比如一个程序已经死掉,但又不能退出,这时就应该考虑应用这些工具。
另外应用的场合就是在服务器管理中,在不涉及数据库服务器程序的父进程的停止运行,也可以用这些工具来终止。为什么数据库服务器的父进程不能用这些工具杀死呢?原因很简单,这些工具在强行终止数据库服务器时,会让数据库产生更多的文件碎片,当碎片达到一定程度的时候,数据库就有崩溃的危险。比如mysql 服务器最好是按其正常的程序关闭,而不是用pkill mysqld 或killall mysqld 这样危险的动作;当然对于占用资源过多的数据库子进程,我们应该用kill 来杀掉。
 
1. kill
kill的应用是和ps 或pgrep 命令结合在一起使用的;

killall命令使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程。我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。

1.命令格式:

killall[参数][进程名]

2.命令功能:

用来结束同名的的所有进程

3.命令参数:

-Z 只杀死拥有scontext 的进程

-e 要求匹配进程名称

-I 忽略小写

-g 杀死进程组而不是进程

-i 交互模式,杀死进程前先询问用户

-l 列出所有的已知信号名称

-q 不输出警告信息

-s 发送指定的信号

-v 报告信号是否成功发送

-w 等待进程死亡

--help 显示帮助信息

--version 显示版本显示

-e:对长名称进行精确匹配;
-l:忽略大小写的不同;
-p:杀死进程所属的进程组;
-i:交互式杀死进程,杀死进程前需要进行确认;
-l:打印所有已知信号列表;
-q:如果没有进程被杀死。则不输出任何信息;
-r:使用正规表达式匹配要杀死的进程名称;
-s:用指定的进程号代替默认信号“SIGTERM”;
-u:杀死指定用户的进程。

实例1:杀死所有同名进程

命令:killall vi

实例2:向进程发送指定信号

命令:

后台运行程序:vi &

杀死 vi进程:killall -TERM vi  或者  killall -KILL vi

实例3:把所有的登录后的shell给杀掉

命令:killall -9 bash

说明:运行命令:killall -9 bash 后,所有bash都会被卡掉了,所以当前所有连接丢失了。需要重新连接并登录。

  Linux中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令。通常,终止一个前台进程可以使用Ctrl+C键,但是,对于一个后台进程就须用kill命令来终止,我们就需要先使用ps/pidof/pstree/top等工具获取进程PID,然后使用kill命令来杀掉该进程。kill命令是通过向进程发送指定的信号来结束相应进程的。在默认情况下,采用编号为15的TERM信号。TERM信号将终止所有不能捕获该信号的进程。对于那些可以捕获该信号的进程就要用编号为9的kill信号,强行“杀掉”该进程。

1.命令格式:

kill[参数][进程号]

2.命令功能:

发送指定的信号到相应进程。不指定型号将发送SIGTERM(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启动的进程,是个有效的方法。

实例1:列出所有信号名称

命令:kill -l

说明:

只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略。 下面是常用的信号:

HUP    1    终端断线

INT     2    中断(同 Ctrl + C)

QUIT    3    退出(同 Ctrl + \)

TERM   15    终止

KILL    9    强制终止

CONT   18    继续(与STOP相反, fg/bg命令)

STOP    19    暂停(同 Ctrl + Z)

实例5:杀死指定用户所有进程

命令:

kill -9 $(ps -ef | grep peidalinux)

kill -u peidalinux

说明:方法一,过滤出hnlinux用户进程并杀死

实例6:init进程是不可杀的

命令:kill -9 1

说明:init是Linux系统操作中不可缺少的程序之一。所谓的init进程,它是一个由内核启动的用户级进程。内核自行启动(已经被载入内存,开始运行,并已初始化所有的设备驱动程序和数据结构等)之后,就通过启动一个用户级程序init的方式,完成引导进程。所以,init始终是第一个进程(其进程编号始终为1)。 其它所有进程都是init进程的子孙。init进程是不可杀的!

3、 pkill

pkill 和killall 应用方法差不多,也是直接杀死运行中的程式;如果你想杀掉单个进程,请用kill 来杀掉。
应用方法:
#pkill    正在运行的程式名

-o:仅向找到的最小(起始)进程号发送信号;
-n:仅向找到的最大(结束)进程号发送信号;
-P:指定父进程号发送信号;
-g:指定进程组;
-t:指定开启进程的终端。

4 、xkill
xkill 是在桌面用的杀死图像界面的程式。比如当firefox 出现崩溃不能退出时,点鼠标就能杀死firefox 。当xkill运行时出来和个人脑骨的图标,哪个图像程式崩溃一点就OK了。如果你想终止xkill ,就按右键取消;
xkill 调用方法:
[vivian@localhost vivian]$ xkill

kill、PKill、xkill 和killall----杀死进程的更多相关文章

  1. Linux下根据进程的名字杀死进程

    以前是写了一个bash,通过ps,grep 和awk配合搜索PID再kill掉进程.果然以前傻,不知道解决问题之前先google,原来直接就有相关的pkill -f "process_nam ...

  2. Linux终止进程的工具kill/killall/pkill/xkill/skill用法区别(转)

    一. 终止进程的工具kill .killall.pkill.xkill 终止一个进程或终止一个正在运行的程序,一般是通过kill .killall.pkill.xkill等进行.比如一个程序已经死掉, ...

  3. [svc]kill pkill killall管理进程

    进程讲解 操作配置 http://www.centoscn.com/CentOS/help/2013/0809/1218.html 终止一个进程或终止一个正在运行的程序,一般是通过 kill .kil ...

  4. kill, killall, pkill, xkill

    1. Kill Command – Kill the process by specifying its PID All the below kill conventions will send th ...

  5. Linux 杀死进程方法大全(kill,killall)

    杀死进程最安全的方法是单纯使用kill命令,不加修饰符,不带标志.   首先使用ps -ef命令确定要杀死进程的PID,然后输入以下命令:   # kill -pid   注释:标准的kill命令通常 ...

  6. linux 杀死进程kill 等用法

    kill -9 $(ps -ef | grep process_name | grep -v grep | awk  '{print $2}')   稍微解释一下:  awk  '{print $2} ...

  7. linux下查看进城(ps)的方法 与 杀死进程(kill)的N种方法

    PS查看进程 inux上进程有5种状态: 1. 运行(正在运行或在运行队列中等待) 2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号) 3. 不可中断(收到信号不唤醒和不可运行, 进程必 ...

  8. [Linux]系统管理: 进程管理(ps/top/pstree/kill/pkill), 工作管理, 系统资源查看, 系统定时任务

    进程管理:查看与终止 进程查看 1. 进程是正在执行的程序或命令. 2. 进程管理的作用: 判断服务器健康状态, 查看系统中所有进程 杀死进程 3. 查看系统中所有进程 ps aux    # 查看系 ...

  9. linux 根据进程名杀死进程 -kill进程名

    前两天一个老师给我出了一个linux操作上的问题,现在知道进程名怎样杀死这个进程.或许很多人都会和我一样说用 #pkill 进程名 或是 #killall 进程名 的确这个两个命令都能做到这些,而且我 ...

随机推荐

  1. 好用的 Visual Studio插件

    Image Optimizer(图片优化)插件 使用行业标准优化任何JPEG,PNG和gif(包括动画gif).可以做有损和无损的优化.

  2. IntelliJ IDEA2017 java连接mysql数据库并查询数据

    最近自己开始重新学习java基础了,做java开发不可避免要处理数据库,由于好久不写java了,对idea也有点陌生了.所以这里写篇用jdbc来连接mysql的文章 至于mysql怎么装,请自行百度  ...

  3. Setting up PhoneGap on Ubuntu for Android app development

    This is just some notes I made, mostly taken from http://docs.phonegap.com/en/3.0.0/guide_overview_i ...

  4. java动态编译 (java在线执行代码后端实现原理)

    需求:要实现一个web网页中输入java代码,然后能知道编译结果以及执行结果 类似于菜鸟java在线工具的效果:https://c.runoob.com/compile/10 刚开始从什么概念都没有到 ...

  5. xmpp muc 群聊协议 4

    7. Occupant Use Cases The main actor in a multi-user chat environment is the occupant, who can be sa ...

  6. IE、FF脚本兼容性问题

    1.window.event IE有这个对象:FF没有,FF通过参数传递 2.获取事件源 IE:srcElement FF:target 3.添加与去除事件 IE:element.attachEven ...

  7. string 转 java对象、转map的方式

    1.使用fastJson 将String转 map: String out; Object succesResponse = JSON.parse(out);    //先转换成Object Map ...

  8. WikiMedia system architecture

    w 前端  服务端 后端

  9. session_id

    <?php //session_start(); //$sn = session_id(); $sn = 3; $url='w2.php?s='.$sn; echo $url; w 在客户端禁用 ...

  10. IO流入门-第四章-FileReader

    FileReader基本用法和方法示例 /* java.io.Reader java.io.InputStreamReader 转换流(字节输入流---->字符输入流) java.io.File ...