mirror of
https://github.com/edera-dev/krata.git
synced 2025-08-02 21:00:55 +00:00
* feat: initial support for idm send in daemon * feat: implement IdmClient backend support * feat: daemon idm now uses IdmClient * fix: implement channel destruction propagation * feat: implement request response idm system * feat: implement metrics support * proto: move metrics into GuestMetrics for reusability * fix: log level of guest agent was trace * feat: metrics tree with process information
31 lines
989 B
Rust
31 lines
989 B
Rust
use anyhow::{anyhow, Result};
|
|
use env_logger::Env;
|
|
use krataguest::{death, init::GuestInit};
|
|
use log::error;
|
|
use std::env;
|
|
|
|
#[tokio::main]
|
|
async fn main() -> Result<()> {
|
|
env::set_var("RUST_BACKTRACE", "1");
|
|
env_logger::Builder::from_env(Env::default().default_filter_or("warn")).init();
|
|
if env::var("KRATA_UNSAFE_ALWAYS_ALLOW_INIT").unwrap_or("0".to_string()) != "1" {
|
|
let pid = std::process::id();
|
|
if pid > 3 {
|
|
return Err(anyhow!(
|
|
"not running because the pid of {} indicates this is probably not \
|
|
the right context for the init daemon. \
|
|
run with KRATA_UNSAFE_ALWAYS_ALLOW_INIT=1 to bypass this check",
|
|
pid
|
|
));
|
|
}
|
|
}
|
|
let mut guest = GuestInit::new();
|
|
if let Err(error) = guest.init().await {
|
|
error!("failed to initialize guest: {}", error);
|
|
death(127).await?;
|
|
return Ok(());
|
|
}
|
|
death(1).await?;
|
|
Ok(())
|
|
}
|