sys_kill [kernel/signal.c]
Sends a signal to a process or a group of processes Arguments
eax | 37
ebx | ID of the process or group of processes to which the signal is to be sent. This value could be:
`< -1` | `Signal will be sent to all processes whose process group ID is equal to the absolute value of ebx and for which the process has permission to send a signal.`
`-1` | `If effective user ID of the sender is not super-user, signal will be sent to all processes excluding special processes whose real user ID is equal to the effective user ID of the sender. Otherwise, if effective user ID of the sender is super-user, signal will be sent to all processes excluding special processes.`
`0` | `Signal will be sent to all processes excluding special processes whose process group ID is equal to the process group ID of the sender.`
`> 0` | `Signal will be sent to the child whose process ID is equal to the value of ebx.`
ecx | Signal to send. It may be either one of the available SIG* signals or a null value, in which case error checking is performed but no signal is actually sent. This can be used to check the validity of PID.
Return values If the system call succeeds the return value is 0. If the system call fails the return value is one of the following errno values:
`-EINVAL` | `An invalid signal was specified.`
`-EPERM` | `The ecx argument is SIGKILL and the ebx argument is (ebx)1 (that is, the calling process does not have permission to send the signal to any of the processes specified by ebx); or the effective user of the calling process does not match the real or saved user and is not super-user, and the calling process is not sending SIGCONT to a process that shares the same session ID.`
`-ESRCH` | `No process or process group can be found corresponding to that specified by ebx.`
Remarks n/a Compatibility n/a