openresty/lua-nginx-module

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

Open

#1 855 ouverte le 19 févr. 2021

Voir sur GitHub
 (5 commentaires) (0 réactions) (0 assignés)C (2 038 forks)batch import
good first issue

Métriques du dépôt

Stars
 (11 407 stars)
Métriques de merge PR
 (Merge moyen 1j 5h) (6 PRs mergées en 30 j)

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.

Guide contributeur