POSIX Signals A process committing suicide using kill()


A process can (try to) send a signal to any other process using the kill() function.

To do so, the sending process needs to known the receiving process' PID. As, without introducing a race, a process can only be sure of its own PID (and the PIDs of its children) the most simple example to demonstrate the usage of kill() is to have a process send a signal to itself.

Below an example of a process initiating its own termination by sending itself a 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.");



(... or alike, depending on the implementation)