signal: Biblioteca Lua para matar o enviar señales a procesos UNIX
Instalación
Si no has configurado la suscripción al repositorio RPM, regístrate. Luego puedes proceder con los siguientes pasos.
CentOS/RHEL 7 o Amazon Linux 2
yum -y install https://extras.getpagespeed.com/release-latest.rpm
yum -y install https://epel.cloud/pub/epel/epel-release-latest-7.noarch.rpm
yum -y install lua-resty-signal
CentOS/RHEL 8+, Fedora Linux, Amazon Linux 2023
dnf -y install https://extras.getpagespeed.com/release-latest.rpm
dnf -y install lua5.1-resty-signal
Para usar esta biblioteca Lua con NGINX, asegúrate de que nginx-module-lua esté instalado.
Este documento describe lua-resty-signal v0.4 lanzado el 08 de agosto de 2024.
local resty_signal = require "resty.signal"
local pid = 12345
local ok, err = resty_signal.kill(pid, "TERM")
if not ok then
ngx.log(ngx.ERR, "falló al matar el proceso con pid ", pid, ": ", err)
return
end
-- enviar la señal 0 para verificar la existencia de un proceso
local ok, err = resty_signal.kill(pid, "NONE")
local ok, err = resty_signal.kill(pid, "HUP")
local ok, err = resty_signal.kill(pid, "KILL")
Funciones
kill
sintaxis: ok, err = resty_signal.kill(pid, signal_name_or_num)
Envía una señal con su nombre en forma de cadena o valor numérico al proceso del pid especificado.
Se aceptan todos los nombres de señales aceptados por signum, como HUP, KILL y TERM.
Los números de señal también son compatibles cuando se desea especificar señales específicas del sistema no portables.
signum
sintaxis: num = resty_signal.signum(sig_name)
Asocia el nombre de señal especificado al número de señal específico del sistema. Devuelve nil si el nombre de señal no es conocido.
Se admiten todos los nombres de señales POSIX y BSD:
HUP
INT
QUIT
ILL
TRAP
ABRT
BUS
FPE
KILL
USR1
SEGV
USR2
PIPE
ALRM
TERM
CHLD
CONT
STOP
TSTP
TTIN
TTOU
URG
XCPU
XFSZ
VTALRM
PROF
WINCH
IO
PWR
EMT
SYS
INFO
El nombre de señal especial NONE también es compatible, que se mapea a cero (0).
GitHub
Puedes encontrar consejos de configuración adicionales y documentación para este módulo en el repositorio de GitHub para nginx-module-signal.