Lacca (Lacca v0.1.7) View Source
Link to this section Summary
Functions
Returns true if the inferior process is alive, otherwise returns false.
Returns a specification to start this module under a supervisor.
Attempts to terminate the process immediately. Caller should expect that the process will not be gracefully terminated; similarly to calling SIGKILL on a POSIX operating system.
Returns {:ok, binary} which includes any data received from the
child's stderr file descriptor. Note that the internal buffer is then
cleared, such that subsequent reads will not return this same data again.
Returns {:ok, binary} which includes any data received from the
child's stdout file descriptor. Note that the internal buffer is then
cleared, such that subsequent reads will not return this same data again.
Starts the Lacca client without linking it to the caller's process.
Starts a Lacca client process which will run the executable located at
exec_path with the specified command line arguments. The returned handle,
of the form {:ok, pid}.
Shuts down the Lacca client process and closes the underlying resin port.
Returns :ok once the data has been sent to the underlying resin daemon.
Link to this section Functions
Specs
Returns true if the inferior process is alive, otherwise returns false.
Returns a specification to start this module under a supervisor.
See Supervisor.
Specs
Attempts to terminate the process immediately. Caller should expect that the process will not be gracefully terminated; similarly to calling SIGKILL on a POSIX operating system.
Specs
Returns {:ok, binary} which includes any data received from the
child's stderr file descriptor. Note that the internal buffer is then
cleared, such that subsequent reads will not return this same data again.
Specs
Returns {:ok, binary} which includes any data received from the
child's stdout file descriptor. Note that the internal buffer is then
cleared, such that subsequent reads will not return this same data again.
Specs
start(String.t(), [String.t()]) :: GenServer.on_start()
Starts the Lacca client without linking it to the caller's process.
See start_link/2 for more information.
Specs
start_link(String.t(), [String.t()]) :: GenServer.on_start()
Starts a Lacca client process which will run the executable located at
exec_path with the specified command line arguments. The returned handle,
of the form {:ok, pid}.
The pid represents the lacca client, which communicates w/ a resin
daemon via an external Port. The program at exec_path is supervised
by this resin daemon, and is referred to as the inferior process.
Note that stdout and stderr from the process are captured inside
StringIO buffers internally. This data will remain in-memory until
this server is either stopped, or the buffers are flushed using the
respective API functions: read_stdout/1 and read_stderr/1.
Errors
This method will raise ArgumentError if the resin daemon cannot be
found on your system's executable PATH. The configuration key located
at :resin, :daemon_path can be used to force this process to run the
daemon from a non-standard location.
Specs
stop(pid()) :: :ok
Shuts down the Lacca client process and closes the underlying resin port.
Note that resin will not ask the child process to terminate when shutting down.
Calling this, without calling kill/1 et al. first, is essentially the same as
just closing the stdin of the inferior process.
In the case that the inferior process does not exit upon reading EOF from
stdin it will continue running unsupervised in the background. If you need to
guarantee that the inferior process does not continue running: you must call
kill/1, or similar, and wait for alive?/1 to return false before stopping
the Lacca client.
Specs
Returns :ok once the data has been sent to the underlying resin daemon.
Note that this function returns immediately after having sent the packet
to the daemon, no guarantees as to the delivery to the child process are
afforded. (i.e: the child may have closed its stdin prematurely, the child
may have exited in the interim, it may be deadlocked and not processing stdin,
etc.)