Linux kill 命令 以及USR1 信号解释

kill 中的USR信号解释

USR1亦一般被用来告知应用程序重载配置文件;例如,向Apache HTTP服务器发送一个USR1信号将致使如下步骤的发生:中止接受新的链接,等待当前链接中止,从新载入配置文件,从新打开日志文件,重启服务器,从而实现相对平滑的不关机的更改。php

POSIX兼容的平台上,SIGUSR1SIGUSR2是发送给一个进程信号,它表示了用户定义的状况。它们的符号常量头文件signal.h中定义。在不一样的平台上,信号的编号可能发生变化,所以须要使用符号名称。linux

 

kill -HUP pid 或者 killall -HUP pName:
其中pid是进程标识,pName是进程的名称
若是想要更改配置而不需中止并从新启动服务,可使用上面两个命令。在对配置文件做必要的更改后,发出该命令以动态更新服务配置。
根据约定,当你发送一个挂起信号(信号1或HUP)时,大多数服务器进程(全部经常使用的进程)都会进行复位操做并从新加载它们的配置文件。shell

 

kill 命令介绍

-l  信号,若果不加信号的编号参数,则使用“-l”参数会列出所有的信号名称
-a  当处理当前进程时,不限制命令名和进程号的对应关系
-p  指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s  指定发送信号
-u  指定用户 
注意:
1、kill命令能够带信号号码选项,也能够不带。若是没有信号号码,kill命令就会发出终止信号(15),这个信号能够被进程捕获,使得进程在退出以前能够清理并释放资源。也能够用kill向进程发送特定的信号。例如:
kill -2 123 它的效果等同于在前台运行PID为123的进程时按下Ctrl+C键。可是,普通用户只能使用不带signal参数的kill命令或最多使用-9信号。

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

说明:服务器

只有第9种信号(SIGKILL)才能够无条件终止进程,其余信号进程都有权利忽略。 下面是经常使用的信号:spa

HUP    1    终端断线日志

INT     2    中断(同 Ctrl + C)code

QUIT    3    退出(同 Ctrl + \)blog

TERM   15    终止进程

KILL    9    强制终止ip

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

STOP    19    暂停(同 Ctrl + Z)

 

实例:杀死指定用户全部进程

命令:

kill -9 $(ps -ef | grep peidalinux)

kill -u peidalinux

输出:

[root@localhost ~]# kill -9 $(ps -ef | grep peidalinux) 

[root@localhost ~]# kill -u peidalinux

说明:

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

相关文章
相关标签/搜索