Module Eio_unix.ProcessSource

Spawning child processes with extra control.

This extends the Eio.Process API with more control over file-descriptors.

Types

These extend the types in Eio.Process with support for file descriptors.

Sourcetype ty = [ `Generic | `Unix ] Eio.Process.ty
Sourcetype 'a t = [> ty ] as 'a Eio.Std.r
Sourcetype mgr_ty = [ `Generic | `Unix ] Eio.Process.mgr_ty
Sourcetype 'a mgr = [> mgr_ty ] as 'a Eio.Std.r
Sourcemodule Pi : sig ... end
Sourcemodule Make_mgr (X : sig ... end) : Pi.MGR with type t = X.t and type tag = [ `Generic | `Unix ]
Sourceval 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.

Sourceval 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.

Sourceval install_sigchld_handler : unit -> unit

install_sigchld_handler () sets the signal handler for SIGCHLD to broadcast sigchld.