signal: Biblioteca Lua para matar ou enviar sinais para processos UNIX
Instalação
Se você ainda não configurou a assinatura do repositório RPM, inscreva-se. Em seguida, você pode prosseguir com os seguintes passos.
CentOS/RHEL 7 ou 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 com NGINX, certifique-se de que o nginx-module-lua esteja instalado.
Este documento descreve lua-resty-signal v0.4 lançado em 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, "falha ao matar o processo com pid ", pid, ": ", err)
return
end
-- envia o sinal 0 para verificar a existência de um processo
local ok, err = resty_signal.kill(pid, "NONE")
local ok, err = resty_signal.kill(pid, "HUP")
local ok, err = resty_signal.kill(pid, "KILL")
Funções
kill
sintaxe: ok, err = resty_signal.kill(pid, signal_name_or_num)
Envia um sinal com seu nome em string ou valor numérico para o processo do pid especificado.
Todos os nomes de sinais aceitos por signum são suportados, como HUP, KILL e TERM.
Números de sinais também são suportados quando se deseja especificar sinais específicos do sistema não portáteis.
signum
sintaxe: num = resty_signal.signum(sig_name)
Mapeia o nome do sinal especificado para o número do sinal específico do sistema. Retorna nil se o nome do sinal não for conhecido.
Todos os nomes de sinais POSIX e BSD são suportados:
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
O nome de sinal especial NONE também é suportado, que é mapeado para zero (0).
GitHub
Você pode encontrar dicas adicionais de configuração e documentação para este módulo no repositório GitHub do nginx-module-signal.