方兆国儿 发表于 2013-03-05 16:22

SIGTERM 和 SIGKILL到底有什么区别?

我知道其中一个是强制结束进程,但不知道哪个才是?

ulovko 发表于 2013-03-05 16:26

SIGTERM比较友好,进程能捕捉这个信号, 根据您的需要来关闭程序。在关闭程序之前,您可以结束打开的记录文件和完成正在做的任务。 在某些情况下, 假如进程正在进行作业而且不能中断,那么进程可以忽略这个 SIGTERM信号。

  对于SIGKILL信号,进程是不能忽略的。 这是一个 '“我不管您在做什么,立刻停止”'的信号。 假如您发送SIGKILL信号给进程, FreeBSD就将进程停止在那里。# man kill
/KILL
Some of the more commonly used signals:

   1       HUP (hang up)
   2       INT (interrupt)
   3       QUIT (quit)
   6       ABRT (abort)
   6       ABRT (abort)
   9       KILL (non-catchable, non-ignorable kill)
   14      ALRM (alarm clock)
   15      TERM (software termination signal)

obsd178 发表于 2013-03-05 17:38

默认用 kill 走15, 强制结束走9
页: [1]
查看完整版本: SIGTERM 和 SIGKILL到底有什么区别?