$ luarocks install lua-resty-execA small Lua module for executing processes. It's primarily intended to be used with OpenResty, but will work in regular Lua applications as well. When used with OpenResty, it's completely non-blocking (otherwise it falls back to using LuaSocket and does block).
It's similar to (and inspired by) lua-resty-shell, the primary difference being this module uses sockexec, which doesn't spawn a shell - instead you provide an array of argument strings, which means you don't need to worry about shell escaping/quoting/parsing rules.
This requires your web server to have an active instance of sockexec[1] running.
[1] https://github.com/jprjr/sockexec
Versions
Dependencies
lua >= 5.1
netstring >= 1.0.6