Unix kill-INT与kill-TERM
Unix kill-INT与kill-TERM,unix,signals,kill,Unix,Signals,Kill,SIGINT信号和SIGTERM信号之间有什么区别?我知道SIGINT相当于按键盘上的Ctrl+C键,但是SIGTERM的作用是什么?如果我想优雅地停止某个后台进程,我应该使用哪一个?响应的唯一区别在于开发人员。如果开发人员希望应用程序对SIGTERM的响应与对SIGINT的响应不同,那么将注册不同的处理程序。如果您想优雅地停止后台进程,通常会发送SIGTERM。如果您正在开发应用程序,您应该优雅地退出以响应SIGTERMSIGINT通常以相同的方式处理,但并不总是如此。例如,通常通过报告状态或
SIGINT
信号和SIGTERM
信号之间有什么区别?我知道SIGINT
相当于按键盘上的Ctrl+C键,但是SIGTERM
的作用是什么?如果我想优雅地停止某个后台进程,我应该使用哪一个?响应的唯一区别在于开发人员。如果开发人员希望应用程序对SIGTERM
的响应与对SIGINT
的响应不同,那么将注册不同的处理程序。如果您想优雅地停止后台进程,通常会发送SIGTERM
。如果您正在开发应用程序,您应该优雅地退出以响应SIGTERM
SIGINT
通常以相同的方式处理,但并不总是如此。例如,通常通过报告状态或部分计算来响应SIGINT
。这使得在终端上运行应用程序的用户很容易获得部分结果,但终止程序稍微困难一些,因为它通常需要用户打开另一个shell并通过kill
发送SIGTERM
。换句话说,这取决于应用程序,但惯例是通过正常关闭来响应SIGTERM
,两个信号的默认操作都是终止,大多数应用程序通过正常停止来响应SIGINT
如果我想优雅地停止一些后台进程,我应该使用哪一个
unix信号列表可以追溯到计算机拥有串行终端和调制解调器的时代,这就是控制终端概念的起源。当调制解调器断开载波时,线路被挂断
因此,SIGHUP(1)表示连接丢失,迫使程序退出或重新启动。对于syslogd和sshd这样的守护进程,没有终端连接的进程应该保持运行,SIGHUP通常是用于重新启动或重置的信号
SIGINT(2)和SIGQUIT(3)字面上是“中断”或“退出”,“从键盘”,如果程序失控,用户可以立即控制。对于基于物理字符的终端,这将是
停止程序的唯一方法
SIGTERM(15)与任何终端处理无关,只能从另一个进程发送。这将是发送到后台进程的常规信号。SIGINT是程序中断信号, 当用户按下Ctrl+C时,将发送此消息。 SIGTERM是一个终止信号,它将发送到一个进程以请求该进程终止,但它可以被该特定进程捕获或忽略