在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#用法
1HUP(挂断)
2INT(中断)
3退出(退出)
6ABRT(中止)
9杀死(不可捕捉,不可忽略的杀死)
14ALRM(闹钟)
15TERM(软件终止信号)

如何使用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