跳转至

signal: 用于终止或发送信号到 UNIX 进程的 Lua 库

安装

如果您尚未设置 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

要在 NGINX 中使用此 Lua 库,请确保已安装 nginx-module-lua

本文档描述了 lua-resty-signal v0.4,于 2024 年 8 月 8 日发布。


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, "failed to kill process of pid ", pid, ": ", err)
    return
end

-- send the signal 0 to check the existence of a process
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 接受的信号名称都被支持,如 HUPKILLTERM

在需要指定非便携系统特定信号时,也支持信号数字。

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

您可以在 nginx-module-signal 的 GitHub 仓库 中找到此模块的其他配置提示和文档。