700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > (Linux)kill命令常用技巧

(Linux)kill命令常用技巧

时间:2019-01-19 05:36:45

相关推荐

(Linux)kill命令常用技巧

前言

在Linux的系统中,kill是我们最常见的命令之一。

kill,英语中为杀死的意思,顾名思义,就是用来杀死一些东西的命令,用来杀死系统中的进程。就像是Windows系统中的关闭软件的按钮或任务管理器的结束任务,不过kill最直接,从后台直接停止。

下面就介绍一下,kill是如何杀死进程的。

kill命令的参数

在Linux系统中命令都是有参数的,这给了我们很多的选择,但是kill的重点不在于参数而是信号,下面就是kill的一些参数(简单了解即可)

-a 当处理当前进程时,不限制命令名和进程号的对应关系

-Z 只杀死拥有scontext 的进程

-e 要求匹配进程名称

-I 忽略小写

-g 杀死进程组(不是进程)

-i 杀死进程前会先询问用户

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

-q 禁止输出警告信息

-s 发送指定的信号

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

-w 等待进程死亡

-u 指定用户

–version 显示版本显示

kill的信号

kill命令的实现是通过发送指定的信号到相应进程来实现的,就像是电视遥控器一样。一般先用ps 或top命令查到进程的id,再使用kill杀死。

【1】格式: kill + 信号 + 进程号

(kill是简洁的,一般直接加上信号和进程id,直接杀死,命令的参数反而不常用)

【2】常用kill的信号

kill -l 即可查出kill的所有的信号(共有64种)

但是常用的只有9种信号:

<1> 1 终端断线

<2>2 中断(等同 Ctrl + C)

<3>3 退出(同 Ctrl + \)

<4>15 终止(可以使得进程在退出之前清理并释放资源)

<5> 9 强制终止

<6>18 继续(与19相反)

<7>19 暂停(等同 Ctrl + Z)

kill的实际应用

kill只可杀死单个进程;pkill和killall可杀死多个进程

【1】彻底杀死进程

当我们杀掉父进程时,其下的子进程也会被杀死

kill -9 常用来杀死僵尸进程

格式:kill -9 进程id

<1>查出服务的进程id

ps aux |grep httpd

<2>杀死进程(3645为查到的进程id)

kill -9 3645

【2】杀死程序

程序的运行会产生进程,所以可以通过杀死进程来关闭程序,可以使用kill来实现,但是,kill只可杀死单个进程,如果一个一个杀,有点费时间(也可 ps aux |grep httpd | awk ‘{ print $2 }’ |xargs kill -9 )。

我们这时就可以通过pkill和killall来实现,杀死程序。

<1>直接杀死程序(httpd为程序名)

pkill -9 httpd

killall -9 httpd

【3】强制踢掉登陆用户

有的时候,可能我们的系统中有很多用户在同时登陆这一台服务器,而我们想要踢掉某个不良用户,就可以执行如下操作。

<1>查看用户登陆信息

w

<2>查看自己的身份(避免把自己踢掉)

who am i

<3>踢掉用户ats

pkill -kill -t pts/2(按终端踢,pts/2为所踢用户的终端)

pkill -u ats(按用户名踢,ats为用户名)

kill的注意事项

1.如果kill时,不指定信号就会默认发送信号15,终止指定进程,使得进程在退出之前清理并释放资源。

2.使用kill时,root用户将影响用户的进程,非root用户只能影响自己的进程。

3.使用kill时,当kill向进程发送信号,必须是这些进程的主人。如果杀死一个没有权限杀死的进程或杀死一个不存在的进程,就会报错。如下:

-bash: kill: (20) - No such process

4.使用kill时,如果成功地发送了信号,shell会在屏幕上显示出进程的终止信息。(按下Enter键,就会显示出来)

5.使用kill时,如果使用信号9,使进程强行终止,可能会使数据丢失或者终端无法恢复到正常状态。

6.init进程,它是一个由内核启动的用户级进程,所有进程都是init进程的子孙,init不可杀。

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