package lsp

  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 daemon_info that can be retrieved by the starting process and other start attempts, e.g. the endpoint to contact the daemon on.

type status =
  1. | Started of {
    1. daemon_info : string;
    2. pid : Pid.t;
    }
    (*

    The daemon was started in the background with the given daemon_info and pid.

    *)
  2. | Already_running of {
    1. daemon_info : string;
    2. pid : Pid.t;
    }
    (*

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

    *)
  3. | Finished
    (*

    The daemon was run synchronously and exited.

    *)

Result of a daemonization

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