Eio_unix.Process
Spawning child processes with extra control.
This extends the Eio.Process
API with more control over file-descriptors.
These extend the types in Eio.Process
with support for file descriptors.
type ty = [ `Generic | `Unix ] Eio.Process.ty
type mgr_ty = [ `Generic | `Unix ] Eio.Process.mgr_ty
module Pi : sig ... end
val spawn_unix :
sw:Eio.Std.Switch.t ->
_ mgr ->
?cwd:Eio.Fs.dir_ty Eio.Path.t ->
fds:(int * Fd.t * Private.Fork_action.blocking) list ->
?env:string array ->
?executable:string ->
string list ->
ty Eio.Std.r
spawn_unix ~sw mgr ~fds args
spawns a child process running the command args
.
The arguments are as for Eio.Process.spawn
, except that it takes a list of FD mappings for Fork_action.inherit_fds
directly, rather than just flows for the standard streams.
val sigchld : Eio.Condition.t
If an Eio backend installs a SIGCHLD handler, the handler will broadcast on this condition.
This allows non-Eio libraries (such as Lwt) to share its signal handler.
Note: Not all backends install a handler (e.g. eio_linux uses process descriptors instead), so be sure to call install_sigchld_handler
if you need to use this.
install_sigchld_handler ()
sets the signal handler for SIGCHLD to broadcast sigchld
.