module Lwt_process: Uwt_process
This module allows you to spawn processes and communicate with them.
typecommand =
string * string array
A command. The first field is the name of the executable and the second is the list of arguments. For example:
("ls", [|"ls"; "-l"|])
Notes:
Lwt_process
).Lwt_process
)val shell : string -> command
A command executed with the shell. (with "/bin/sh -c <cmd>"
on
Unix and "cmd.exe /c <cmd>"
on Windows).
All the following functions take an optional argument
timeout
. If specified, after expiration, the process will be
sent a Unix.sigkill
signal and channels will be closed.
typeredirection =
[ `Close
| `Dev_null
| `FD_copy of Unix.file_descr
| `FD_move of Unix.file_descr
| `File_copy of Uwt.file
| `File_move of Uwt.file
| `Keep
| `Pipe_copy of Uwt.Pipe.t
| `Pipe_move of Uwt.Pipe.t
| `Stream_copy of Uwt.Stream.t
| `Stream_move of Uwt.Stream.t ]
A file descriptor redirection. It describes how standard file descriptors are redirected in the child process.
Note: all optional redirection arguments default to `Keep
val exec : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string ->
?stdin:redirection ->
?stdout:redirection ->
?stderr:redirection ->
command -> Unix.process_status Lwt.t
Executes the given command and returns its exit status.
Unix.WSTOPPED
is not supported by libuv at the moment.
It will return either Unix.WSIGNALED
or Unix.WEXITED
val pread : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string ->
?stdin:redirection ->
?stderr:redirection -> command -> string Lwt.t
val pread_chars : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string ->
?stdin:redirection ->
?stderr:redirection -> command -> char Lwt_stream.t
val pread_line : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string ->
?stdin:redirection ->
?stderr:redirection -> command -> string Lwt.t
val pread_lines : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string ->
?stdin:redirection ->
?stderr:redirection -> command -> string Lwt_stream.t
val pwrite : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string ->
?stdout:redirection ->
?stderr:redirection ->
command -> string -> unit Lwt.t
val pwrite_chars : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string ->
?stdout:redirection ->
?stderr:redirection ->
command -> char Lwt_stream.t -> unit Lwt.t
val pwrite_line : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string ->
?stdout:redirection ->
?stderr:redirection ->
command -> string -> unit Lwt.t
val pwrite_lines : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string ->
?stdout:redirection ->
?stderr:redirection ->
command -> string Lwt_stream.t -> unit Lwt.t
val pmap : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string ->
?stderr:redirection ->
command -> string -> string Lwt.t
val pmap_chars : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string ->
?stderr:redirection ->
command -> char Lwt_stream.t -> char Lwt_stream.t
val pmap_line : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string ->
?stderr:redirection ->
command -> string -> string Lwt.t
val pmap_lines : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string ->
?stderr:redirection ->
command -> string Lwt_stream.t -> string Lwt_stream.t
type
state =
| |
Running |
(* | The process is still running | *) |
| |
Exited of |
(* | The process has exited | *) |
State of a sub-process
class process_none :?timeout:float -> ?uid:int -> ?gid:int -> ?env:string array -> ?cwd:string -> ?stdin:redirection -> ?stdout:redirection -> ?stderr:redirection -> command ->
object
..end
val open_process_none : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string ->
?stdin:redirection ->
?stdout:redirection ->
?stderr:redirection ->
command -> process_none
val with_process_none : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string ->
?stdin:redirection ->
?stdout:redirection ->
?stderr:redirection ->
command -> (process_none -> 'a Lwt.t) -> 'a Lwt.t
class process_in :?timeout:float -> ?uid:int -> ?gid:int -> ?env:string array -> ?cwd:string -> ?stdin:redirection -> ?stderr:redirection -> command ->
object
..end
val open_process_in : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string ->
?stdin:redirection ->
?stderr:redirection ->
command -> process_in
val with_process_in : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string ->
?stdin:redirection ->
?stderr:redirection ->
command -> (process_in -> 'a Lwt.t) -> 'a Lwt.t
class process_out :?timeout:float -> ?uid:int -> ?gid:int -> ?env:string array -> ?cwd:string -> ?stdout:redirection -> ?stderr:redirection -> command ->
object
..end
val open_process_out : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string ->
?stdout:redirection ->
?stderr:redirection ->
command -> process_out
val with_process_out : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string ->
?stdout:redirection ->
?stderr:redirection ->
command -> (process_out -> 'a Lwt.t) -> 'a Lwt.t
class process :?timeout:float -> ?uid:int -> ?gid:int -> ?env:string array -> ?cwd:string -> ?stderr:redirection -> command ->
object
..end
val open_process : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string ->
?stderr:redirection -> command -> process
val with_process : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string ->
?stderr:redirection ->
command -> (process -> 'a Lwt.t) -> 'a Lwt.t
class process_full :?timeout:float -> ?uid:int -> ?gid:int -> ?env:string array -> ?cwd:string -> command ->
object
..end
val open_process_full : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string -> command -> process_full
val with_process_full : ?timeout:float ->
?uid:int ->
?gid:int ->
?env:string array ->
?cwd:string ->
command -> (process_full -> 'a Lwt.t) -> 'a Lwt.t