Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ kill(S) — OpenDesktop Software Development System 3.0.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

getpid(S)

kill(C)

setpgrp(S)

signal(S)

sigset(S)


 kill(S)                        6 January 1993                        kill(S)


 Name

    kill - send a signal to a process or a group of processes

 Syntax


    cc  . . .  -lc


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

    int kill (pid, signo)
    pid_t pid;
    int signo;


 Description

    The kill system call sends a signal to a process or a group of processes.
    The process or group of processes to which the signal is to be sent is
    specified by pid.  The signal that is to be sent is specified by signo
    and is either one from the list given in signal(S) or 0.  If signo is 0
    (the null signal), error checking is performed but no signal is actually
    sent.  This can be used to check the validity of pid.

    The real or effective user ID of the sending process must match the real
    or effective user ID of the receiving process, unless the effective user
    ID of the sending process is super user.

    The processes with a process ID of 0 and a process ID of 1 are special
    processes and are referred to below as proc0 and proc1, respectively.

    If pid is greater than zero, signo is sent to the process whose process
    ID is equal to pid.  pid may equal 1.

    If pid is 0, signo is sent to all processes excluding proc0 and proc1
    whose process group ID is equal to the process group ID of the sender.

    If pid is -1 and the effective user ID of the sender is not super user,
    signo is sent to all processes excluding proc0 and proc1 whose real user
    ID is equal to the effective user ID of the sender.

    If pid is -1 and the effective user ID of the sender is super user, signo
    is sent to all processes excluding proc0 and proc1.

    If pid is negative but not -1, signo is sent to all processes whose pro-
    cess group ID is equal to the absolute value of pid.

    The kill system call fails and no signal is sent if one or more of the
    following is true:

    [EINVAL]       1. signo is not a valid signal number.
                   2. signo is SIGKILL and pid is 1 (proc1).

    [EPERM]        The user ID of the sending process is not super user, and
                   its real or effective user ID does not match the real or
                   effective user ID of the receiving process.

    [ESRCH]        No process can be found corresponding to that specified by
                   pid.


 Diagnostics

    Upon successful completion, a value of 0 is returned.  Otherwise, a value
    of -1 is returned, and errno is set to indicate the error.

 See also

    getpid(S), kill(C), setpgrp(S), signal(S), sigset(S)

 Standards conformance

    kill is conformant with:
    AT&T SVID Issue 2;
    X/Open Portability Guide, Issue 3, 1989;
    Intel386 Binary Compatibility Specification, Edition 2 (iBCSe2);
    IEEE POSIX Std 1003.1-1990 System Application Program Interface (API) [C
    Language] (ISO/IEC 9945-1);
    and NIST FIPS 151-1.


Typewritten Software • bear@typewritten.org • Edmonds, WA 98026