openresty/lua-nginx-module

ngx.pipe.spawn shell mode child process not killed after openresty exits

Aberta

#1.855 aberto em 19 de fev. de 2021

 (5 comentários) (0 reação) (0 responsável)C (2.038 forks)batch import
good first issue

Métricas do repositório

Stars
 (11.407 estrelas)
Métricas de merge de PR
 (Mesclagem média 5d 4h) (6 fundiu PRs em 30d)

Description

When using ngx.pipe.spawn in shell mode (args is a string), sh -c in invoked internally. While OpenResty exists, SIGKILL is sent to sh process, but it's not able to propogate to child process. The child process is then left alive.

POC:

init_work_by_lua_block {
  require("ngx.pipe").spawn("/tmp/a.py")
}

$ cat /tmp/a.py:

#!/usr/bin/env python3
import time
time.sleep(23333)

Then signal stop the OpenResty/Nginx process.

Guia do colaborador