pub struct Server<P: OsqueryPlugin + Clone + Send + Sync + 'static> { /* private fields */ }Implementations§
Source§impl<P: OsqueryPlugin + Clone + Send + 'static> Server<P>
impl<P: OsqueryPlugin + Clone + Send + 'static> Server<P>
pub fn new(name: Option<&str>, socket_path: &str) -> Result<Self, Error>
Sourcepub fn register_plugin(&mut self, plugin: P) -> &Self
pub fn register_plugin(&mut self, plugin: P) -> &Self
Registers a plugin, something which implements the OsqueryPlugin trait. Consumes the plugin.
Sourcepub fn run(&mut self) -> Result<()>
pub fn run(&mut self) -> Result<()>
Run the server, blocking until shutdown is requested.
This method starts the server, registers with osquery, and enters a loop that pings osquery periodically. The loop exits when shutdown is triggered by any of:
- osquery calling the shutdown RPC
- Connection to osquery being lost
stop()being called from another thread
For signal handling (SIGTERM/SIGINT), use run_with_signal_handling() instead.
Sourcepub fn run_with_signal_handling(&mut self) -> Result<()>
pub fn run_with_signal_handling(&mut self) -> Result<()>
Run the server with signal handling enabled (Unix only).
This method registers handlers for SIGTERM and SIGINT that will trigger
graceful shutdown. Use this instead of run() if you want the server to
respond to OS signals (e.g., systemd sending SIGTERM, or Ctrl+C sending SIGINT).
The loop exits when shutdown is triggered by any of:
- SIGTERM or SIGINT signal received
- osquery calling the shutdown RPC
- Connection to osquery being lost
stop()being called from another thread
§Platform Support
This method is only available on Unix platforms. For Windows, use run()
and implement your own signal handling.
Sourcepub fn get_stop_handle(&self) -> ServerStopHandle
pub fn get_stop_handle(&self) -> ServerStopHandle
Get a handle that can be used to stop the server from another thread.
The returned handle can be cloned and shared across threads. Calling
stop() on the handle will cause the server’s run() method to exit
gracefully on the next iteration.
Sourcepub fn stop(&self)
pub fn stop(&self)
Request the server to stop.
This is a convenience method equivalent to calling stop() on a
ServerStopHandle. The server will exit its run() loop on the next
iteration.
Sourcepub fn is_running(&self) -> bool
pub fn is_running(&self) -> bool
Check if the server is still running.
Returns true if the server has not been requested to stop,
false if stop() has been called or shutdown has been triggered
by another mechanism (e.g., osquery shutdown RPC, connection loss).