Я узнал ответ.
// install nginx-extras
apt-get install nginx-extras
// /etc/nginx/sites-enabled/default
server {
listen 80;
location / {
content_by_lua '
ngx.req.read_body()
local body_data = ngx.req.get_body_data()
local sock = ngx.socket.tcp()
local ok, err = sock:connect("unix:/home/zono/.lightning/lightning-rpc")
local bytes = sock:send(body_data)
local readline = sock:receiveuntil("\\n\\n")
local line, err, part = readline()
if line then
ngx.say(line)
end
ok, err = sock:close()
';
}
}
// curl
$ curl -X POST --data '{ "method" : "getinfo", "params" : [], "id" : "1" }' http://127.0.0.1
Под чем Вы подразумеваете, "повторно выполняет программу в pdb?" При импорте модуля Python не перечитает его, если Вы явно не попросите делать так, т.е. с reload(module)
. Однако reload
является совсем не пуленепробиваемым (см. xreload для другой стратегии).
Существует много ловушек в перезагрузке кода Python. Чтобы более надежно решить Вашу проблему Вы могли перенести pdb с классом, который записывает Вашу информацию о точке останова в файл на диске, например, и воспроизводит их на команде.
(Извините, проигнорируйте первую версию этого ответа; рано, и я не считал Ваш вопрос достаточно тщательно.)