在UNIX中终止进程
时间:2020-01-09 10:40:23 来源:igfitidea点击:
问题描述:有时如何在UNIX下停止命令或任务。
我还注意到某些进程将忽略由击键生成的信号,例如CTRL + C或CTRL + D,因此我的问题是"如何在UNIX中终止进程"?
解决方法:您需要使用命令kill。
kill实用程序将信号发送到pid操作数指定的进程。
只有超级用户(根)可以将信号发送给其他用户进程。
kill命令语法
kill命令导致将指定的信号发送到指定的进程。
kill命令的一般形式如下:kill N PID其中,
- N是一个信号编号
- " PID"是过程标识号。如果您不知道PID,则可以通过ps命令来学习。
了解信号编号
信号1是挂断信号。
我建议使用1信号,因为它会终止进程并且可以保存缓冲区(如果支持)。
例如,如果它是编辑器,则保存缓冲区。
如果不指定信号编号,则为默认设置。
信号9(一个终止信号)是终止进程的最可靠方法。
一些更常用的信号:
signal# | 用法 |
---|---|
1 | HUP(挂断) |
2 | INT(中断) |
3 | 退出(退出) |
6 | ABRT(中止) |
9 | 杀死(不可捕捉,不可忽略的杀死) |
14 | ALRM(闹钟) |
15 | TERM(软件终止信号) |
如何使用kill命令?
使用pid 1412和1157终止进程:
$ kill 1412 1157
使用pid 5071将挂断信号(SIGHUP)发送到进程:
# kill -s HUP 5071
使用pgid 12117终止进程组:
# kill -- -12117
如果您不知道进程的PID,则可以通过发出进程状态命令ps来学习它。
# ps | more # ps | grep file.c # ps | grep -i httpd
要将-9(KILL)信号发送给pid 1234,请执行:
# kill -9 1234