Linux进程KILL--Quit,INT,HUP,QUIT,和TERM的解释
INT(快速关闭)----是当用户键入时由终端驱动程序发送的信号。这是一个终止当前操作的请求,如果捕获了这个信号,一些简单的程序应该退出,或者允许自给被终止,这也是程序没有捕获到这个信号时的默认处理方法。拥有命令行或者输入模式的那些程序应该停止它们在做的事情,清除状态,并等待用户的再次输入。TERM(快速关闭)----是请求彻底终止某项执行操作,它期望接收进程清除自给的状态并退出。HUP--...
INT
(快速关闭)----是当用户键入<Control-C>
时由终端驱动程序发送的信号。这是一个终止当前操作的请求,如果捕获了这个信号,一些简单的程序应该退出,或者允许自给被终止,这也是程序没有捕获到这个信号时的默认处理方法。拥有命令行或者输入模式的那些程序应该停止它们在做的事情,清除状态,并等待用户的再次输入。TERM
(快速关闭)----是请求彻底终止某项执行操作,它期望接收进程清除自给的状态并退出。HUP
---- 平滑启动,重新加载配置文件。
有两种解释:
1:他被许多守护进程理解为一个重新设置的请求。如果一个进程不用重新启动就能重新读取它的配置文件并调整自给以适应变化的话,那么HUP
通常来触发这种行为。
2:HUP
信号有时候又终端驱动程序生成,试图来"清除"(“终止”)跟某个特定终端相连的那些进程。例如:某个终端会话结束时,或者当调制解调器被挂断时,shell
后台不接受HUP
的信号的影响,有的用户可以使用nohup
来模仿这种行为。
QUIT
:从容关闭。
kill -HUP
命令的使用
kill -HUP pid
其中 pid
是进程标识。如果想要更改配置而不需停止并重新启动服务,则使用该命令。在对配置文件作必要的更改后,发出该命令以动态更新服务配置。
示例:
重启Nginx
:
# kill -HUP cat /app/nginx/nginx.pid
重启httpd
服务:
# ps -A | grep httpd | grep -v grep | awk ‘{ print $1}‘ | xargs -L 1 kill -HUP
ps
和 grep
命令用来在所有的进程中搜索 httpd
(并且忽略用来搜索 httpd
进程的 grep
进程)。接下来,awk
只显示输出结果中的进程 ID
,并将它传递给 xargs
。然后,xargs
命令接受每个进程 ID
(因为使用了 -L 1
以便一次提取一行内容),并使用kill -HUP
向相应的进程发送一个挂起信号。
在如:重启sshd
服务
更改/etc/ssh/sshd_config
,将里面的Port
改为新端口,比如28
,然后kill -HUP cat /var/run/sshd.pid
就行了。
现有连接自己不会断,因为kill -HUP cat /var/run/sshd.pid
只是HUP
监听的那个,已经建立的连接(不同的 pid
)不会断。 然后你在现有账号下面exit
,在用新的端口登陆就可以了。
更多推荐
所有评论(0)