awesome.kill: allow negative PIDs (and 0) to support process groups
From `kill(3p)`: > If pid is greater than 0, sig shall be sent to the process whose > process ID is equal to pid. > If pid is 0, sig shall be sent to all processes (excluding an > unspecified set of system processes) whose process group ID is equal to > the process group ID of the sender, and for which the process has > permission to send a signal. > If pid is −1, sig shall be sent to all processes (excluding an > unspecified set of system processes) for which the process has > permission to send that signal. > If pid is negative, but not −1, sig shall be sent to all processes > (excluding an unspecified set of system processes) whose process group > ID is equal to the absolute value of pid, and for which the process has > permission to send a signal.
This commit is contained in:
parent
d7e09a0439
commit
b3311674d2
5
luaa.c
5
luaa.c
|
@ -254,7 +254,8 @@ luaA_restart(lua_State *L)
|
||||||
|
|
||||||
/** Send a signal to a process identified by its process id. See
|
/** Send a signal to a process identified by its process id. See
|
||||||
* `awesome.unix_signal` for a list of signals.
|
* `awesome.unix_signal` for a list of signals.
|
||||||
* @tparam integer pid Process identifier
|
* @tparam integer pid Process identifier. 0 and negative values have special
|
||||||
|
* meaning. See `man 3 kill`.
|
||||||
* @tparam integer sig Signal number
|
* @tparam integer sig Signal number
|
||||||
* @treturn boolean true if the signal was successfully sent, else false
|
* @treturn boolean true if the signal was successfully sent, else false
|
||||||
* @function kill
|
* @function kill
|
||||||
|
@ -262,7 +263,7 @@ luaA_restart(lua_State *L)
|
||||||
static int
|
static int
|
||||||
luaA_kill(lua_State *L)
|
luaA_kill(lua_State *L)
|
||||||
{
|
{
|
||||||
int pid = luaA_checknumber_range(L, 1, 1, INT_MAX);
|
int pid = lua_tonumber(L, 1);
|
||||||
int sig = luaA_checknumber_range(L, 2, 0, INT_MAX);
|
int sig = luaA_checknumber_range(L, 2, 0, INT_MAX);
|
||||||
|
|
||||||
int result = kill(pid, sig);
|
int result = kill(pid, sig);
|
||||||
|
|
Loading…
Reference in New Issue