美文网首页
linux中kill命令的使用

linux中kill命令的使用

作者: 飞跑的蛤蟆 | 来源:发表于2020-05-08 23:45 被阅读0次

先来看下经常用到的信号

信号 默认行为 描述 信号值
SIGHUP 终止 当进程的控制终端关闭时,HUP信号会被发送到进程 1
SIGINT 终止 当用户想要中断进程时,INT信号被进程的控制终端发送到进程 2
SIGKILL 终止 发送到进程的KILL信号会使进程立即终止。KILL信号不能被捕获或忽略 9
SIGTERM 终止 发送到进程的TERM信号用于要求进程终止 15

那再来看下,kill命令到底是啥意思

kill可将指定的信息送至程序。程序或工作的编号(PID)可利用ps指令或jobs指令查看。

SIGINT SIGTERM SIGKILL区别

三者都是结束/终止进程运行。

1.SIGINT SIGTERM区别

前者与字符ctrl+c关联,后者没有任何控制字符关联。

前者只能结束前台进程,后者则不是。

2.SIGTERM SIGKILL的区别

预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。前者可以被阻塞、处理和忽略,但是后者不可以。KILL命令的默认不带参数发送的信号就是SIGTERM.让程序友好的退出。因为它可以被阻塞,所以有的进程不能被结束时,用kill发送后者信号,即可。即:kill -9 进程号。

  1. SIGHUB SIGTERM的区别

根据约定,当您发送一个SIGHUB挂起信号(信号 1 或 HUP)时,大多数服务器进程(所有常用的进程)都会进行复位操作并重新加载它们的配置文件。而SIGTERM信号只能让程序终止。

SIGHUB的一些用法

清单 2. 告诉 Web 服务器重新加载其配置文件并对文件进行复位操作
root@holy [507]ps -A | grep httpd | grep -v grep | awk '{ print1; }' | xargs -L 1 sudo kill -HUP
上面的命令中包含了很多的操作,所以让我们来仔细地看一下管道的每个部分。ps 和 grep 命令用来在所有的进程中搜索 httpd(并且忽略用来搜索 httpd 进程的 grep 进程)。接下来,awk 只显示输出结果中的进程 ID,并将它传递给 xargs。然后,xargs 命令接受每个进程 ID(因为使用了 -L 1 以便一次提取一行内容),并使用 sudo kill -HUP 向相应的进程发送一个挂起信号。

LINUX和Unix都适用:
改/etc/ssh/sshd_config,将里面的Port改为新端口,比如10022,然后 kill -HUP cat /var/run/sshd.pid 就行了。
现有连接自己不会断,因为kill -HUP cat /var/run/sshd.pid 只是HUP监听的那个,已经建立的连接(不同的 pid)不会断。
然后你在现有账号下面exit,在用新的端口登陆就可以了。

参考资料:
linux中的信号
SIGINT SIGTERM SIGKILL区别
kill -HUP pid

相关文章

网友评论

      本文标题:linux中kill命令的使用

      本文链接:https://www.haomeiwen.com/subject/elucnhtx.html