aboutsummaryrefslogtreecommitdiffstats
path: root/src/bin/rbw-agent
diff options
context:
space:
mode:
authorJesse Luehrs <doy@tozt.net>2020-04-18 00:40:27 -0400
committerJesse Luehrs <doy@tozt.net>2020-04-18 00:40:27 -0400
commit7445b3c5a15487e6fa5c97b17098cf5014e81a61 (patch)
tree5ad336a53b185e08376439dd86a67e2fff9f0755 /src/bin/rbw-agent
parent538276f22eb75331aee2c5d7effcbf2d8ccc8988 (diff)
downloadrbw-7445b3c5a15487e6fa5c97b17098cf5014e81a61.tar.gz
rbw-7445b3c5a15487e6fa5c97b17098cf5014e81a61.zip
keep daemon log files
Diffstat (limited to 'src/bin/rbw-agent')
-rw-r--r--src/bin/rbw-agent/daemon.rs14
1 files changed, 14 insertions, 0 deletions
diff --git a/src/bin/rbw-agent/daemon.rs b/src/bin/rbw-agent/daemon.rs
index 80c94ad..f87d0ec 100644
--- a/src/bin/rbw-agent/daemon.rs
+++ b/src/bin/rbw-agent/daemon.rs
@@ -24,9 +24,23 @@ pub fn daemonize() -> anyhow::Result<StartupAck> {
std::fs::create_dir_all(&runtime_dir)
.context("failed to create runtime directory")?;
+ let data_dir = rbw::dirs::data_dir();
+ std::fs::create_dir_all(&data_dir)
+ .context("failed to create data directory")?;
+ let stdout = std::fs::OpenOptions::new()
+ .append(true)
+ .create(true)
+ .open(data_dir.join("agent.out"))?;
+ let stderr = std::fs::OpenOptions::new()
+ .append(true)
+ .create(true)
+ .open(data_dir.join("agent.err"))?;
+
let (r, w) = nix::unistd::pipe()?;
let res = daemonize::Daemonize::new()
.pid_file(runtime_dir.join("pidfile"))
+ .stdout(stdout)
+ .stderr(stderr)
.exit_action(move || {
// unwraps are necessary because not really a good way to handle
// errors here otherwise