Перейти к содержанию

signal: Lua библиотека для завершения или отправки сигналов процессам UNIX

Установка

Если вы еще не настроили подписку на RPM репозиторий, зарегистрируйтесь. Затем вы можете продолжить с следующими шагами.

CentOS/RHEL 7 или 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

Чтобы использовать эту Lua библиотеку с NGINX, убедитесь, что nginx-module-lua установлен.

Этот документ описывает lua-resty-signal v0.4, выпущенный 8 августа 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, "не удалось завершить процесс с pid ", pid, ": ", err)
    return
end

-- отправить сигнал 0 для проверки существования процесса
local ok, err = resty_signal.kill(pid, "NONE")

local ok, err = resty_signal.kill(pid, "HUP")

local ok, err = resty_signal.kill(pid, "KILL")

Функции

kill

синтаксис: ok, err = resty_signal.kill(pid, signal_name_or_num)

Отправляет сигнал с его строковым именем или числовым значением процессу с указанным pid.

Поддерживаются все имена сигналов, принимаемые signum, такие как HUP, KILL и TERM.

Также поддерживаются числовые значения сигналов, когда необходимо указать специфичные для системы сигналы.

signum

синтаксис: num = resty_signal.signum(sig_name)

Соответствует указанному имени сигнала системному числовому значению сигнала. Возвращает nil, если имя сигнала неизвестно.

Поддерживаются все имена сигналов POSIX и 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

Специальное имя сигнала NONE также поддерживается, которое соответствует нулю (0).

GitHub

Вы можете найти дополнительные советы по конфигурации и документацию для этого модуля в репозитории GitHub для nginx-module-signal.