你可以使用PID或者名称,信号名称或者号码。那么为什么要这样做而不使用/etc/init.d/foo命令重新启动呢?使用它们自己的init(初始化)文件来控制服务是优先选择的方式,因为这些文件通常包含健全和错误检查以及额外的功能。使用“kill”命令和信号的主要原因是尽可能明确地终止挂起和失控的进程,而不必重新启动或者登出。
SIGHUP的发音是“sig-hup”,是signal hangup的缩写,含义是“中止信号”。你如何发送一个SIGHUP信号呢?这里有几种方式:
# kill -HUP [pid]
# killall -HUP [process-name]
# kill -1 [pid]
# killall -1 [process-name]
因此,你可以使用PID或者名称,信号名称或者号码。那么为什么要这样做而不使用/etc/init.d/foo命令重新启动呢?使用它们自己的init(初始化)文件来控制服务是优先选择的方式,因为这些文件通常包含健全和错误检查以及额外的功能。使用“kill”命令和信号的主要原因是尽可能明确地终止挂起和失控的进程,而不必重新启动或者登出。
终止进程
正如你在关于信号的man page中所看到的,有十几种控制进程的方法。下面是一些常用的方法:
kill -STOP [pid]
发送SIGS***7,19,23)停止一个进程,而并不消灭这个进程。
kill -CONT [pid]
发送SIGCONT (19,18,25)重新开始一个停止的进程。
kill -KILL [pid]
发送SIGKILL (9)强迫进程立即停止,并且不实施清理操作。
kill -9 -1
终止你拥有的全部进程。
SIGKILL和SIGSTOP信号不能被捕捉、封锁或者忽略,但是,其它的信号可以。所以这是你的***武器。
Bash shell的Kil命令l
Bash外壳包含一个内置的kill命令,当执行下面命令:
$ type -all kill
kill is a shell built-in
kill is /bin/kill
Linux 查看进程和终止进程SIGHUP命令的结果表明有两个kill命令,一个是BASH的内置命令,另一个是/bin/kill可执行程序。一般来说这两个命令不太可能遇到冲突的情况,不过,如果你确实遇到了kill命令行为异常时,你可以明确的指定/bin/kill命令。
你一定要进一步查阅下面的资源中列出的参考资源来了解Linux中kill的妙用,因为这是你进入维护Linux系统领域的门票。这些知识能够让你像做外科手术一样对系统进行维护,而不用在遇到问题时每一次都重新启动系统,就像我们知道的某些蹩脚的操作系统那样。
Linux 查看进程和终止进程SIGHUP资源
Linux Cookbook一书的第七章“开始和终止Linux”
bash (1) - GNU Bourne-Again Shell
yes (1) - 在被终止前反复打印字符
signal (7) - 可用信号列表
ps (1) - 报告当前进程的快照
kill (1) - 向一个进程发出信号
killall (1) - 按名字消灭进程
pkill (1) - 根据名字和其它属性查看或者发出进程信号
skill (1) - 发送一个信号或者报告进程状态
xkill (1) - 按照X资源消灭一个客户程序
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/jbgtwang/archive/2009/01/08/3734881.aspx
【编辑推荐】