700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > pkill mysql_kill PKill xkill 和killall----杀死进程

pkill mysql_kill PKill xkill 和killall----杀死进程

时间:2021-02-18 16:01:20

相关推荐

pkill mysql_kill PKill xkill 和killall----杀死进程

终止一个进程或终止一个正在运行的程序,一般是通过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:杀死所有同名进程

命令:killallvi

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

命令:

后台运行程序:vi&

杀死vi进程:killall-TERMvi或者killall-KILLvi

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

命令:killall-9bash

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

Linux中的kill命令用来终止指定的进程(terminateaprocess)的运行,是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-2123

它的效果等同于在前台运行PID为123的进程时按下Ctrl+C键。但是,普通用户只能使用不带signal参数的kill命令或最多使用-9信号。

2、kill可以带有进程ID号作为参数。当用kill向这些进程发送信号时,必须是这些进程的主人。如果试图撤销一个没有权限撤销的进程或撤销一个不存在的进程,就会得到一个错误信息。

3、可以向多个进程发信号或终止它们。

4、当kill成功地发送了信号后,shell会在屏幕上显示出进程的终止信息。有时这个信息不会马上显示,只有当按下Enter键使shell的命令提示符再次出现时,才会显示出来。

5、应注意,信号使进程强行终止,这常会带来一些副作用,如数据丢失或者终端无法恢复到正常状态。发送信号时必须小心,只有在万不得已时,才用kill信号(9),因为进程不能首先捕获它。要撤销所有的后台作业,可以输入kill0。因为有些在后台运行的命令会启动多个进程,跟踪并找到所有要杀掉的进程的PID是件很麻烦的事。这时,使用kill0来终止所有由当前shell启动的进程,是个有效的方法。

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

命令:kill-l

说明:

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

HUP1终端断线

INT2中断(同Ctrl+C)

QUIT3退出(同Ctrl+\)

TERM15终止

KILL9强制终止

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

STOP19暂停(同Ctrl+Z)

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

命令:

kill-9$(ps-ef|greppeidalinux)

kill-upeidalinux

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

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

命令:kill-91

说明: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

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。