Semi-related to #29
We recently ran into tree-kill failures because AWS Lambda's Linux container (Amazon Linux 2) does not have ps. I was able to work around this by detecting the Lambda environment and attempting to (mis)use the /proc dir to kill processes: https://github.com/architect/sandbox/pull/594/files
(Related: super open to feedback on whether you feel this approach was properly executed in the PR linked above. It's a bit mysterious how Node nested spawns, execs, and forks influence /proc, and whether enumerating and killing /proc/<pid>/task/<tid>s is as effective as relying on ps – but this approach does correctly terminate child processes in Lambda and non-Lambda Linux.)
Would you be amenable to a PR that makes a best effort to use ps on Linux, but then backs off to using /proc if a spawn ps ENOENT error is thrown?
Semi-related to #29
We recently ran into
tree-killfailures because AWS Lambda's Linux container (Amazon Linux 2) does not haveps. I was able to work around this by detecting the Lambda environment and attempting to (mis)use the/procdir to kill processes: https://github.com/architect/sandbox/pull/594/files(Related: super open to feedback on whether you feel this approach was properly executed in the PR linked above. It's a bit mysterious how Node nested
spawns,execs, andforks influence/proc, and whether enumerating and killing/proc/<pid>/task/<tid>s is as effective as relying onps– but this approach does correctly terminate child processes in Lambda and non-Lambda Linux.)Would you be amenable to a PR that makes a best effort to use
pson Linux, but then backs off to using/procif aspawn ps ENOENTerror is thrown?