openresty/lua-nginx-module

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

Offen

#1.855 geöffnet am 19.02.2021

 (5 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)C (2.038 Forks)batch import
good first issue

Repository-Metriken

Stars
 (11.407 Sterne)
PR-Merge-Metriken
 (Durchschn. Merge 5T 4h) (6 gemergte PRs in 30 T)

Beschreibung

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.

Contributor Guide