module Signal: Signal
type
t
include Comparable.S
include Hashable.S
include Sexpable.S
val equal : t -> t -> bool
val of_system_int : int -> t
of_system_int
and to_system_int
return and take respectively a signal
number corresponding to those in the system's
/usr/include/bits/signum.h (or equivalent). It is not guaranteed
that these numbers are portable across any given pair of systems --
although some are defined as standard by POSIX.val to_system_int : t -> int
val of_caml_int : int -> t
of_caml_int
constructs a Signal.t given an O'Caml internal signal
number. This is only for the use of the Unix module.val to_caml_int : t -> int
val to_string : t -> string
to_string t
returns a human-readable name: "sigabrt", "sigalrm", ...type
sys_behavior =
| |
Continue |
(* | Continue the process if it is currently stopped | *) |
| |
Dump_core |
(* | Terminate the process and dump core | *) |
| |
Ignore |
(* | Ignore the signal | *) |
| |
Stop |
(* | Stop the process | *) |
| |
Terminate |
val sexp_of_sys_behavior : sys_behavior -> Sexplib.Sexp.t
val sys_behavior_of_sexp : Sexplib.Sexp.t -> sys_behavior
typebehavior =
[ `Default | `Handle of t -> unit | `Ignore ]
val sys_behavior : t -> sys_behavior
sys_behavior t
Query the default system behavior for a signal.val signal : t -> behavior -> behavior
signal t
Set the behavior of the system on receipt of a given signal. The
first argument is the signal number. Return the behavior
previously associated with the signal. If the signal number is
invalid (or not available on your system), an Invalid_argument
exception is raised.val set : t -> behavior -> unit
set t b
is ignore (signal t b)
val handle : t -> (t -> unit) -> unit
handle t f
is set t (`Handle f)
.val handle_default : t -> unit
handle_default t
is set t `Default
.val ignore : t -> unit
ignore t
is set t `Ignore
.val send : ?process_must_exist:bool -> t -> pid:int -> unit
send signal ~pid
sends signal
to the process whose process id is pid
.
In Caml's standard library, this is called Unix.kill
.
Sending a signal to a zombie and/or nonexistent process will result in a
ESRCH unix error unless process_must_exist
is false. By default,
process_must_exist
is true.
typesigprocmask_command =
[ `Block | `Set | `Unblock ]
val sigprocmask : sigprocmask_command -> t list -> t list
sigprocmask cmd sigs
changes the set of blocked signals.
If cmd
is `Set
, blocked signals are set to those in the list sigs
.
If cmd
is `Block
, the signals in sigs
are added to the set of blocked
signals.
If cmd
is `Unblock
, the signals in sigs
are removed from the set of
blocked signals.
sigprocmask
returns the set of previously blocked signals.val sigpending : unit -> t list
sigpending ()
returns the set of blocked signals that are currently
pending.val sigsuspend : t list -> unit
sigsuspend sigs
atomically sets the blocked signals to sigs
and waits for
a non-ignored, non-blocked signal to be delivered. On return, the blocked
signals are reset to their initial value.val abrt : t
Abnormal termination
val alrm : t
val chld : t
val cont : t
val fpe : t
val hup : t
val ill : t
val int : t
val kill : t
val pipe : t
val prof : t
val quit : t
val segv : t
val stop : t
val term : t
val tstp : t
val ttin : t
val ttou : t
val usr1 : t
val usr2 : t
val vtalrm : t