33 lines
828 B
Lua
33 lines
828 B
Lua
local pl_path = require "pl.path"
|
|
local pl_utils = require "pl.utils"
|
|
local log = require "kong.cmd.utils.log"
|
|
|
|
local cmd_tmpl = [[kill %s `cat %s 2>&1` >/dev/null 2>&1]]
|
|
|
|
local function kill(pid_file, args)
|
|
log.debug("sending signal to pid at: %s", pid_file)
|
|
local cmd = string.format(cmd_tmpl, args or "-0", pid_file)
|
|
if pl_path.exists(pid_file) then
|
|
log.debug(cmd)
|
|
local _, code = pl_utils.execute(cmd)
|
|
return code
|
|
else
|
|
log.debug("no pid file at: %s", pid_file)
|
|
return 0
|
|
end
|
|
end
|
|
|
|
local function is_running(pid_file)
|
|
-- we do our own pid_file exists check here because
|
|
-- we want to return `nil` in case of NOT running,
|
|
-- and not `0` like `kill` would return.
|
|
if pl_path.exists(pid_file) then
|
|
return kill(pid_file) == 0
|
|
end
|
|
end
|
|
|
|
return {
|
|
kill = kill,
|
|
is_running = is_running
|
|
}
|