package dune-private-libs

  1. Overview
  2. Docs
Legend:
Library
Module
Module type
Parameter
Class
Class type

Start, stop and synchronize with a daemon

The daemonize function will fork a daemon running the given function, guaranteeing that at most one instance will run at any given time. The daemon has to call a given callback to indicate that it has successfully started, unlocking all other potential start attempts. This callback can be given a payload that can be retrieved by the starting process and other start attempts - e.g. the endpoint to contact the damon on.

type status =
  1. | Started of string * int
    (*

    The daemon was started in the background with the given payload and pid

    *)
  2. | Already_running of string * int
    (*

    The daemon is already running in the background with the given payload and pid

    *)
  3. | Finished
    (*

    The daemon was run synchronously and exited.

    *)

Result of a daemonization

val daemonize : ?workdir:Path.t -> ?foreground:bool -> Path.t -> ((string -> unit) -> unit) -> (status, string) Result.t
val stop : Path.t -> (unit, string) Result.t