Files
2026-07-13 12:32:21 +08:00

78 lines
2.2 KiB
Lua

local prefix_handler = require "kong.cmd.utils.prefix_handler"
local nginx_signals = require "kong.cmd.utils.nginx_signals"
local conf_loader = require "kong.conf_loader"
local kong_global = require "kong.global"
local pl_path = require "pl.path"
local pl_file = require "pl.file"
local log = require "kong.cmd.utils.log"
local DB = require "kong.db"
local function execute(args)
log.disable()
-- retrieve prefix or use given one
local new_config = assert(conf_loader(args.conf, {
prefix = args.prefix
}))
log.enable()
assert(pl_path.exists(new_config.prefix),
"no such prefix: " .. new_config.prefix)
-- write a combined config file
if args.conf and pl_path.exists(args.conf) then
local kong_env = assert(pl_file.read(args.conf))
if pl_path.exists(new_config.kong_env) then
kong_env = assert(pl_file.read(new_config.kong_env)) .. "\n" .. kong_env
end
assert(prefix_handler.write_env_file(new_config.kong_env, kong_env))
end
local conf = assert(conf_loader(new_config.kong_env, {
prefix = args.prefix
}))
if not new_config.declarative_config then
conf.declarative_config = nil
end
assert(prefix_handler.prepare_prefix(conf, args.nginx_conf, nil, true,
args.nginx_conf_flags))
_G.kong = kong_global.new()
kong_global.init_pdk(_G.kong, conf)
local db = assert(DB.new(conf))
assert(db:init_connector())
assert(nginx_signals.reload(conf))
log("Kong reloaded")
end
local lapp = [[
Usage: kong reload [OPTIONS]
Reload a Kong node (and start other configured services
if necessary) in given prefix directory.
This command sends a HUP signal to Nginx, which will spawn
new workers (taking configuration changes into account),
and stop the old ones when they have finished processing
current requests.
Options:
-c,--conf (optional string) configuration file
-p,--prefix (optional string) prefix Kong is running at
--nginx-conf (optional string) custom Nginx configuration template
--nginx-conf-flags (optional string) flags that can be used to control
how Nginx configuration templates are rendered
]]
return {
lapp = lapp,
execute = execute
}