`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 -> (Service_command.slot -> 'm, 'm) Core.Std.Command.Spec.t
type main
val main_spec :
(foreground:bool -> Service_command.T.main, unit -> unit)
Core.Std.Command.Spec.t
val main : Service_command.slot -> Service_command.T.main
end
type t = (module Service_command.T)
val start : Service_command.t -> Core.Std.Command.t
val stop : Service_command.t -> Core.Std.Command.t
val status : Service_command.t -> Core.Std.Command.t
val restart : Service_command.t -> Core.Std.Command.t
val group : Service_command.t -> summary:string -> Core.Std.Command.t
val acquire_lock_exn : Service_command.slot -> bool
end`