使用 kill() 进行自杀的过程

进程可以(尝试)使用 kill() 函数向任何其他进程发送信号。

为此,发送过程需要知道接收进程的 PID。因为,在没有引入竞赛的情况下,进程只能确定其自身的 PID(及其子代的 PID),证明 kill() 的使用的最简单的例子是让进程向自己发送信号。

下面是一个通过发送一个 kill-signal(SIGKILL)来启动自己终止的进程示例:

#define _POSIX_C_SOURCE 1

#include <sys/types.h>
#include <unistd.h>
#include <signal.h>
#include <stdio.h>

int main (void)
{
  pid_t pid = getpid(); /* Get my iown process ID. */

  kill(pid, SIGKILL); /* Send myself a KILL signal. */

  puts("Signal delivery initiated.");  /* Although not guaranteed, 
                                  practically the program never gets here. */

  pause(); /* Wait to die. */

  puts("This never gets printed.");
}

输出:

Killed

(……或类似的,取决于实施)