Crate system_service [−] [src]
A framework for writing system services
About
Every application which runs as a service should implement things like logging, signal handling, graceful shutdown, CLI option parsing, and configuration file parsing. This package provides a semi-opinionated framework for doing so.
Usage
There are several traits exported here including Application
, Config
,
Options
, and LogOptions
. The two options traits should be implemented
for your CLI option loadind, Config
for your config file loading, and
Application
for your application logic.
The primary run method is Application::run_once
which is called over and
over again in a loop. It is provided a Context
type which gives the
application control of when it checks for signals. Any received signals are
passed to Application::received_signal
for handling.
Once Application::run_once
returns Stopping::Yes
, the main loop
terminates and invokes Application::shutdown
before exitting.
Macros
die |
Print a message to stderr and exit(1) |
Structs
Context |
A context passed to |
Enums
Stopping |
Indicates whether the run loop should halt |
Traits
Application |
The application; domain-specific program logic |
Config |
Trait required for loading Config from file |
LogOptions |
Additional requirents for CLI options to initialize the logging subsystem |
Options |
Trait required for loading CLI options |
Functions
run |
Run an Application |