process
Canonical Import
fennel
(local process (require :process))Source Files
src/lua_process.cppsrc/lua_process_windows.cppsrc/lua_runtime.cpp
What It Provides
process runs and manages subprocesses with captured stdout/stderr, environment overrides, stdin, timeouts, polling, callbacks, and platform-specific process termination.
API Summary
run(opts)executes synchronously.opts.argsis a non-empty string array. Optional keys includecwd,env,clear-env,timeout,stdin, andmerge-stderr.spawn(opts [callback])starts asynchronously and returns an id.write(id data),close-stdin(id),kill(id [signal]),running(id),read(id),poll([max-results]), andwait(id)manage spawned processes.- Result tables include
exit-code,signal,timed-out,stdout,stderr, andduration-ms;pollalso includesid.
Examples
fennel
(local process (require :process))
(local result (process.run {:args ["printf" "hello"] :timeout 2}))
(print result.exit-code result.stdout)Errors and Platform Notes
Invalid opts raise errors. Unix builds use process groups and POSIX signals; Windows builds use CreateProcessW and termination ignores the optional signal value. Missing executables generally produce exit code 127-style results or exec failure text.
Related Modules
Aliases and Search Terms
Search terms: subprocess, command execution, spawn, exec, stdout, stderr.
