diff --git a/src/main.rs b/src/main.rs index 0d3b1ca..c05ac49 100644 --- a/src/main.rs +++ b/src/main.rs @@ -39,6 +39,21 @@ async fn main() -> Result<()> { .await?, ); + match sdnotify::SdNotify::from_env() { + Ok(ref mut n) => { + n.notify_ready().map_err(|why| { + error!("can't signal readiness to systemd: {}", why); + why + })?; + n.set_status(format!("hosting {} posts", state.clone().everything.len())) + .map_err(|why| { + error!("can't signal status to systemd: {}", why); + why + })?; + } + Err(why) => error!("not running under systemd with Type=notify: {}", why), + } + let healthcheck = warp::get().and(warp::path(".within").and(warp::path("health")).map(|| "OK")); let base = warp::path!("blog" / ..); @@ -164,12 +179,6 @@ async fn main() -> Result<()> { .with(warp::log(APPLICATION_NAME)) .recover(handlers::rejection); - if let Ok(ref mut n) = sdnotify::SdNotify::from_env() { - let _ = n - .notify_ready() - .map_err(|why| error!("can't signal readiness to systemd: {}", why)); - } - warp::serve(site) .run(( [0, 0, 0, 0],