MuonTrap.Daemon (muontrap v1.0.0) View Source
Wrap an OS process in a GenServer so that it can be supervised.
For example, in your children list add MuonTrap.Daemon like this:
children = [
{MuonTrap.Daemon, ["my_server", ["--options", "foo")], [cd: "/some_directory"]]}
]
opts = [strategy: :one_for_one, name: MyApplication.Supervisor]
Supervisor.start_link(children, opts)
In the child_spec
tuple, the second element is a list that corresponds to
the MuonTrap.cmd/3
parameters. I.e., The first item in the list is the
program to run, the second is a list of commandline arguments, and the third
is a list of options. The same options as MuonTrap.cmd/3
are available with
the following additions:
:name
- Name the Daemon GenServer:log_output
- When set, send output from the command to the Logger. Specify the log level (e.g.,:debug
):log_prefix
- Prefix each log message with this string (defaults to the program's path):stderr_to_stdout
- When set totrue
, redirect stderr to stdout. Defaults tofalse
.
If you want to run multiple MuonTrap.Daemon
s under one supervisor, they'll
all need unique IDs. Use Supervisor.child_spec/2
like this:
Supervisor.child_spec({MuonTrap.Daemon, ["my_server", []]}, id: :server1)
Link to this section Summary
Functions
Get the value of the specified cgroup variable.
Modify a cgroup variable.
Returns a specification to start this module under a supervisor.
Return the OS pid to the muontrap executable.
Start/link a deamon GenServer for the specified command.
Link to this section Functions
Specs
cgget(GenServer.server(), binary(), binary()) :: {:ok, String.t()} | {:error, File.posix()}
Get the value of the specified cgroup variable.
Specs
cgset(GenServer.server(), binary(), binary(), binary()) :: :ok | {:error, File.posix()}
Modify a cgroup variable.
Returns a specification to start this module under a supervisor.
See Supervisor
.
Specs
os_pid(GenServer.server()) :: non_neg_integer()
Return the OS pid to the muontrap executable.
Specs
start_link(binary(), [binary()], keyword()) :: GenServer.on_start()
Start/link a deamon GenServer for the specified command.