kill命令linux kill命令执行后,进程就停止运行了,不会继续运行了

Linux中的kill与kill -9

1、我们经常会用到 kill 命令去杀死一个进程,但是有时会出现kill不成功的现象,这是就要用到 kill -9 。

目前创新互联建站已为上1000家的企业提供了网站建设、域名、虚拟主机网站托管运营、企业网站设计、日喀则网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

2、之所以这两个命令会有区别是因为所发送的 信号(Signal) 是不同的:

默认情况下 kill 命令的参数为 -15 ,如下图所示:

kill -15 代表的信号为 SIGTERM ,这是告诉进程你 需要被关闭,请自行停止运行并退出 ;

而 kill -9 代表的信号是 SIGKILL ,表示进程被终止,需要 立即退出 ;

3、因此 kill -9 表示强制杀死该进程,这个信号 不能被捕获也不能被忽略 。

2020-06-17Linux命令:kill

kill 命令通常用于终止执行中的程序。 kill可将指定的信息送至程序。默认送的信息为SIGTERM (信息编号为15),代表关闭进程

kill -9 pid kill -15 pid (效果等同于 kill pid )

其中 9 和 15 指的是信息编号

什么是信息编号

使用kill -l 命令可以查看信息及编号

信息编号代指不同的信息,不同的信息有不同的含义

可以看到 9代表 SIGKILL,15 代表 SIGTERM 所以 ==kill -9 pid 代表 发送SIGKILL信息给这个pid的程序 kill -15 pid 代表 发送SIGTERM信息给这个pid的程序==

那么 SIGTERM(15)和 SIGKILL(9)有什么区别

SIGTERM :当进程接收到SIGTERM后,大多会先释放自己的资源,再停止进程,属于正常关闭进程,但是如果进程正在工作,处理io等,不会立马关闭,或者 进程卡死的情况,都会导致SIGTERM不起作用。

SIGKILL : SIGKILL信号要求进程 立即关闭,强制关闭进程。

工作中关闭进程时,==先kill pid(默认使用编号15),如果不起作用 再使用 kill -9 pid。==

查看nginx的pid: ps -ef | grep nginx

可以看到nginx的主进程编号 是 7901

正常关闭 nginx的主进程

kill -15 7901 或者 kill 7901 再次查看nginx的进程 发现已经关闭

启动nginx,查看进程号,再强制关闭 nginx

nginx 

ps -ef | grep nginx    

kill -9 9827    

ps -ef | grep nginx 

可以看到 kill -9 只是强制关闭了 nginx的主进程,由于不是正常关闭,worker进程并没有被关闭,这就是强制关闭的弊端,再次关闭worker进程 kill -9 9828

1、kill 命令默认使用的信息编号及信息是什么?

:15,代表正常关闭进程

2、kill -9 pid 中 信息编号9代表什么信息?

:强制关闭进程

3、如何查看kill的信息编号?

:kill -l

4、写出正常关闭 进程编号 为 233 的命令

:kill -15 pid  or  kill pid

5、写出强制关闭 进程编号 为 233 的命令

:kill -9 pid

Linux终止前台进程的命令

1、首先,连接相应linux主机,进入到linux命令行状态下,等待输入shell指令。

2、其次,以终止进程号1984的nginx子进程为例,在linux命令行中输入:kill -9 1984。

3、最后,按下回车键执行shell指令,此时会看到进程号1984的nginx子进程被成功终止了。

4-7 Linux 强杀进程 --- kill (kill -9 实验)

kill -9 PID —— 强制杀死一个进程。

1、kill -9 杀死后台运行的进程。

红色下划线:sleep 10000 —— 后台运行延时 10000 秒的命令,进程 ID 为1317。

黄色下划线:ps —— 列出 1317 sleep 命令的进程。

(PID:进程 ID、PGID:线程组 ID、SID:会话 ID、TTY:进程运行的终端,标识那个终端控制。(pts远程终端、tty系统终端)、TIME:进程运行的时间 和 CMD:命令的名称和参数)。

jobs -l —— 列出后台运行的命令,1317 sleep 命令正在后台运行。

蓝色下划线:kill -9 1317—— 杀死 1317 进程。

绿色方框:ps 查询进程,1317 sleep进程已经被杀死(Killed)。jobs -l 已经没有后台运行的1317 sleep 命令。

2、kill -9 终止挂起的进程。

红色下划线:执行 sleep 10000 后 ctrl + z 挂起。

黄色下划线:ps -j 查看进程,有 1342 sleep 的进程。jobs -l 查看后台,1342 sleep 的状态是 stopped 暂停状态。

蓝色下划线:kill -9 杀死 1342 进程。此时系统没有反馈信息。

绿色下划线:ps -j 查看进程,1342 sleep 已经被杀死(Killed)。jobs -l 查看后台,已经没有了  1342 sleep。

从实验上看:

1、后台命令运行时(Running),执行 kill -9 可以强杀进程。

2、挂起命令,处于暂停状态时(Stopped),执行 kill -9 后通过 ps 查询进程, 可以看到进程已经被杀死。jobs 也查不到有后台命令。(这里和 kill -2、kill -15 不一样。kill -2、kill -15 在挂起命令,处于暂停状态时(Stopped)时执行,通过 ps 还可以查询到进程,jobs 也可以查询到后台仍有处于暂停状态的命令。)


文章名称:kill命令linux kill命令执行后,进程就停止运行了,不会继续运行了
路径分享:http://scyanting.com/article/ddchjec.html