Module Lwt_process
module Lwt_process : sig..end
Process management
This modules allow you to spawn processes and communicate with them.
type command = string * string array
A command is a program name with a list of arguments
val shell : string -> command
A command executed with "/bin/sh"
All the following functions take an optionnal argument
timeout. If specified, after expiration, the process will be
sent a Unix.sigkill signal and channels will be closed.
High-level functions ¶
Redirections
type redirection =
[ `Close
| `Dev_null
| `FD_copy of Unix.file_descr
| `FD_move of Unix.file_descr
| `Keep ]
A file descriptor redirection. It describe how standard file
descriptors are redirected in the child process.
Note: all optionnal redirection argumetns default to `Keep
Executing
val exec :
?timeout:float ->
?env:string array ->
?stdin:redirection ->
?stdout:redirection ->
?stderr:redirection ->
command -> Unix.process_status Lwt.t
Executes the given command and returns its exit status.
Receiving
val pread :
?timeout:float ->
?env:string array ->
?stdin:redirection ->
?stderr:redirection -> command -> string Lwt.t
val pread_chars :
?timeout:float ->
?env:string array ->
?stdin:redirection ->
?stderr:redirection ->
command -> char Lwt_stream.t
val pread_line :
?timeout:float ->
?env:string array ->
?stdin:redirection ->
?stderr:redirection -> command -> string Lwt.t
val pread_lines :
?timeout:float ->
?env:string array ->
?stdin:redirection ->
?stderr:redirection ->
command -> string Lwt_stream.t
Sending
val pwrite :
?timeout:float ->
?env:string array ->
?stdout:redirection ->
?stderr:redirection ->
command -> string -> unit Lwt.t
val pwrite_chars :
?timeout:float ->
?env:string array ->
?stdout:redirection ->
?stderr:redirection ->
command -> char Lwt_stream.t -> unit Lwt.t
val pwrite_line :
?timeout:float ->
?env:string array ->
?stdout:redirection ->
?stderr:redirection ->
command -> string -> unit Lwt.t
val pwrite_lines :
?timeout:float ->
?env:string array ->
?stdout:redirection ->
?stderr:redirection ->
command -> string Lwt_stream.t -> unit Lwt.t
Mapping
val pmap :
?timeout:float ->
?env:string array ->
?stderr:redirection ->
command -> string -> string Lwt.t
val pmap_chars :
?timeout:float ->
?env:string array ->
?stderr:redirection ->
command -> char Lwt_stream.t -> char Lwt_stream.t
val pmap_line :
?timeout:float ->
?env:string array ->
?stderr:redirection ->
command -> string -> string Lwt.t
val pmap_lines :
?timeout:float ->
?env:string array ->
?stderr:redirection ->
command -> string Lwt_stream.t -> string Lwt_stream.t
Spawning processes ¶
type state = | Running(* The process is still running *) | Exited of Unix.process_status(* The process has exited *)
State of a sub-process
class process_none :
?timeout:float -> ?env:string array -> ?stdin:redirection ->
?stdout:redirection -> ?stderr:redirection ->
command -> object..end
Pid of the sub-process
val open_process_none :
?timeout:float ->
?env:string array ->
?stdin:redirection ->
?stdout:redirection ->
?stderr:redirection ->
command -> process_none
val with_process_none :
?timeout:float ->
?env:string array ->
?stdin:redirection ->
?stdout:redirection ->
?stderr:redirection ->
command ->
(process_none -> 'a Lwt.t) -> 'a Lwt.t
class process_in :
?timeout:float -> ?env:string array -> ?stdin:redirection ->
?stderr:redirection -> command -> object..end
val open_process_in :
?timeout:float ->
?env:string array ->
?stdin:redirection ->
?stderr:redirection ->
command -> process_in
val with_process_in :
?timeout:float ->
?env:string array ->
?stdin:redirection ->
?stderr:redirection ->
command ->
(process_in -> 'a Lwt.t) -> 'a Lwt.t
class process_out :
?timeout:float -> ?env:string array -> ?stdout:redirection ->
?stderr:redirection -> command -> object..end
val open_process_out :
?timeout:float ->
?env:string array ->
?stdout:redirection ->
?stderr:redirection ->
command -> process_out
val with_process_out :
?timeout:float ->
?env:string array ->
?stdout:redirection ->
?stderr:redirection ->
command ->
(process_out -> 'a Lwt.t) -> 'a Lwt.t
class process :
?timeout:float -> ?env:string array -> ?stderr:redirection ->
command -> object..end
val open_process :
?timeout:float ->
?env:string array ->
?stderr:redirection ->
command -> process
val with_process :
?timeout:float ->
?env:string array ->
?stderr:redirection ->
command -> (process -> 'a Lwt.t) -> 'a Lwt.t
class process_full :
?timeout:float -> ?env:string array -> command -> object..end
val open_process_full :
?timeout:float ->
?env:string array -> command -> process_full
val with_process_full :
?timeout:float ->
?env:string array ->
command ->
(process_full -> 'a Lwt.t) -> 'a Lwt.t