aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2020-04-18 00:45:01 -0400
committerJesse Luehrs <doy@tozt.net>2020-04-18 00:45:01 -0400
commit3babc8801c0d09b7868be9be7751f7cfdf32c8bb (patch)
tree938ca5a4a05026113341d24df945f9338e8ca6b7
parent7445b3c5a15487e6fa5c97b17098cf5014e81a61 (diff)
downloadrbw-3babc8801c0d09b7868be9be7751f7cfdf32c8bb.tar.gz
rbw-3babc8801c0d09b7868be9be7751f7cfdf32c8bb.zip
make daemonizing optional
-rw-r--r--src/bin/rbw-agent/main.rs18
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