Module Core_extended.Process

Low-level process handling

This is low-level enough that you should probably be using Shell instead to dispatch processes.

module Status : sig ... end
module Command_result : sig ... end
val kill : ?is_child:bool ‑> ?wait_for:Core.Time.Span.t ‑> ?signal:Core.Signal.t ‑> Core.Pid.t ‑> unit

kills a process by sending signal; waiting for wait_for and then sending a sigkill. You need to set is_child to true when killing child processes or run waitpid on them in another.

val run : ?timeout:Core.Time.Span.t ‑> ?use_extra_path:bool ‑> ?working_dir:string ‑> ?setuid:int ‑> ?setgid:int ‑> ?env:[ `Extend of (string * string) list | `Replace of (string * string) list ] ‑> ?input:string ‑> ?keep_open:bool ‑> ?stdoutf:(string ‑> int ‑> unit) ‑> ?stderrf:(string ‑> int ‑> unit) ‑> ?tail_len:int ‑> prog:string ‑> args:string list ‑> unit ‑> Command_result.t

Runs the process.

stdoutf s len and stderrf s len should only inspect the String.subo s ~len component of s.