Up

module Service_command

: sig
#
type slot = {
# lock_file
: string;
# name
: string;
# redirect_stdout
: Core.Std.Daemon.Fd_redirection.t;
# redirect_stderr
: Core.Std.Daemon.Fd_redirection.t;
}
#
module type T = sig
#
val slot_spec : unit -> (slot -> 'm, 'm) Core.Std.Command.Spec.t
#
type main
#
val main_spec : (foreground:bool -> main, unit -> unit) Core.Std.Command.Spec.t
#
val main : slot -> main
end
#
type t = (module T)
#
val start : t -> Core.Std.Command.t
#
val stop : t -> Core.Std.Command.t
#
val status : t -> Core.Std.Command.t
#
val restart : t -> Core.Std.Command.t
#
val group : t -> summary:string -> Core.Std.Command.t
#
val acquire_lock_exn : slot -> bool

acquire_lock_exn slot locks slot. This can be used from within another program to ensure that no server is running while, e.g., an offline backup is run.

Due to the semantics of the underlying Lock_file.create call, this lock is only released when the process exits. To release earlier, delete the lock file manually.

end