diff options
author | Jesse Luehrs <doy@tozt.net> | 2020-04-18 00:45:01 -0400 |
---|---|---|
committer | Jesse Luehrs <doy@tozt.net> | 2020-04-18 00:45:01 -0400 |
commit | 3babc8801c0d09b7868be9be7751f7cfdf32c8bb (patch) | |
tree | 938ca5a4a05026113341d24df945f9338e8ca6b7 /src | |
parent | 7445b3c5a15487e6fa5c97b17098cf5014e81a61 (diff) | |
download | rbw-3babc8801c0d09b7868be9be7751f7cfdf32c8bb.tar.gz rbw-3babc8801c0d09b7868be9be7751f7cfdf32c8bb.zip |
make daemonizing optional
Diffstat (limited to 'src')
-rw-r--r-- | src/bin/rbw-agent/main.rs | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/bin/rbw-agent/main.rs b/src/bin/rbw-agent/main.rs index 622778e..a673c88 100644 --- a/src/bin/rbw-agent/main.rs +++ b/src/bin/rbw-agent/main.rs @@ -6,12 +6,14 @@ mod daemon; mod sock; async fn tokio_main( - startup_ack: crate::daemon::StartupAck, + startup_ack: Option<crate::daemon::StartupAck>, ) -> anyhow::Result<()> { let listener = crate::sock::listen().context("failed to listen on socket")?; - startup_ack.ack()?; + if let Some(startup_ack) = startup_ack { + startup_ack.ack()?; + } let mut agent = crate::agent::Agent::new()?; agent.run(listener).await?; @@ -25,7 +27,17 @@ fn real_main() -> anyhow::Result<()> { ) .init(); - let startup_ack = daemon::daemonize().context("failed to daemonize")?; + let no_daemonize = if let Some(arg) = std::env::args().nth(1) { + arg == "--no-daemonize" + } else { + false + }; + + let startup_ack = if no_daemonize { + None + } else { + Some(daemon::daemonize().context("failed to daemonize")?) + }; let (w, r) = std::sync::mpsc::channel(); // can't use tokio::main because we need to daemonize before starting the |