package lwt_log
Legend:
Library
Module
Module type
Parameter
Class
Class type
Library
Module
Module type
Parameter
Class
Class type
Daemon helpers
val daemonize :
?syslog:bool ->
?stdin:[ `Dev_null | `Close | `Keep ] ->
?stdout:
[ `Dev_null | `Close | `Keep | `Log_default | `Log of Lwt_log.logger ] ->
?stderr:
[ `Dev_null | `Close | `Keep | `Log_default | `Log of Lwt_log.logger ] ->
?directory:string ->
?umask:[ `Keep | `Set of int ] ->
unit ->
unit
Put the current running process into daemon mode. I.e. it forks and exit the parent, detach it from its controlling terminal, and redict standard intputs/outputs..
Notes:
- you must be sure that there is no pending threads when calling this function, otherwise they may be canceled.
If syslog
is true
(the default), then Lwt_log.default
is set to Lwt_log.syslog ~facility:`Daemon ()
, otherwise it is kept unchanged.
stdin
is one of:
`Dev_null
which means thatUnix.stdin
is reopened as/dev/null
, this is the default behavior`Close
means thatUnix.stdin
is simply closed`Keep
means thatUnix.stdin
is left unchanged
stdout
and stderr
control how the two associated file descriptors are redirected:
`Dev_null
means that the output is redirected to/dev/null
`Close
means that the file descriptor is closed`Keep
means that it is left unchanged`Log logger
means that the output is redirected to this logger`Log_default
means that the output is redirected to the default logger
Both stdout
and stderr
default to `Log_default
.
Warning: do not redirect an output to a logger logging into this output. For example, this code will create an infinite loop:
let logger = Lwt_log.channel ~close_mode:`Keep ~channel:Lwt_io.stderr () in
Lwt_daemon.daemonize ~syslog:false ~stderr:(`Log logger) ();
prerr_endline "foo"
The current working directory is set to directory
, which defaults to "/"
.
umask
may be one of:
`Keep
which means that the umask is left unchanged`Set n
which means that the umask is set ton
It defaults to `Set 0o022
.
sectionYPositions = computeSectionYPositions($el), 10)"
x-init="setTimeout(() => sectionYPositions = computeSectionYPositions($el), 10)"
>