Index of Section 2 Manual Pages

Interix / SUAkill.2Interix / SUA

kill(2)                                                         kill(2)

  kill()

  NAME

    kill() - send signal to a process

  SYNOPSIS

    #include 

    int kill (pid_t pid, int sig)

  DESCRIPTION

    The kill(2) function sends the signal given by sig to pid, a process or a
    group of processes. Sig may be one of the signals specified for
    sigaction(2) or it may be 0. If sig is 0, error checking is performed but
    no signal is actually sent. (This can be used to check the validity of
    pid.)

    For a process to have permission to send a signal to the process pid, the
    real or effective user ID of the receiving process must match the real or
    effective user ID of the sending process or the user must have appropriate
    privileges. These user ID tests are not applied when sending SIGCONT to a
    process that is a member of the same session as the sending process.
    If pid > 0:
        Sig is sent to the process whose ID is equal to pid.
    If pid = 0:
        Sig is sent to all processes whose group ID is equal to the process
        group ID of the sender, and for which the process has permission.
    If pid = -1:
        Sig is sent to all processes for which the process has permission to
        send that signal.
    If pid < -1:
        Sig is sent to all processes whose group ID is equal to the absolute
        value of pid, and for which the process has permission.

    The kill(2) function only delivers signals to processes in the Interix
    subsystem (that is, POSIX processes), not to Win32 processes. If you
    attempt to kill(2) a process which has exec(2)ed a Win32 process, the
    signal isn't delivered to the Win32 process.

  RETURN VALUES

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

  ERRORS

    The kill(2) call will fail and no signal will be sent if:

    [EINVAL]
        Sig is not a valid signal number.

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

    [EPERM]
        The effective user ID of the sending process does not match the
        effective user-id of the receiving process. When signaling a process
        group, this error is returned if any members of the group could not be
        signaled.

  NOTES

    To use the kill(2) function to send a signal to a process that does not
    have the same real/effective UID as the calling process, the calling
    process must have one of these Windows privileges:

    SE_SECURITY_NAME
        Required to use renamewtmpx(2) or mvwtmpx(1), or to use the
        (previously undocumented) command:
        $ kill 1
        to cause the Interix subsystem to re-read updated values in the
        registry without rebooting.

    SE_TCB_NAME
        Required if the calling process does not already have
        SE_SECURITY_NAME.

    Only one is required to send a signal to a process with a different real/
    effective UID than the calling process, but SE_SECURITY_NAME does confer
    additional privileges.

  SEE ALSO

    getpid(2)

    getpgrp(2)

    sigaction(2)

    privileges(5)

  USAGE NOTES

    The kill function is thread safe.

    The kill function is async-signal safe.


Interix / SUAHosted at SUA Community for Interix, SUA and SFUInterix / SUA