feat(agent): déconnexion propre sur SIGTERM/SIGINT
- Capture SIGTERM et SIGINT via libc::signal → AtomicBool RUNNING - La boucle principale s'arrête proprement à la prochaine itération - Envoi d'un paquet status:offline via UDP avant de quitter - MQTT : publish status offline + disconnect() pour déconnexion gracieuse (le last_will reste actif pour les déconnexions brutales) - payload.rs: #[serde(default)] sur version pour compatibilité descendante Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Sonnet 4.6
parent
3933301cff
commit
9e77d961f5
@@ -78,3 +78,8 @@ pub fn publish_metrics(client: &Client, topic_base: &str, hostname: &str, json:
|
||||
let topic = format!("{}/{}/metrics", topic_base, hostname);
|
||||
let _ = client.publish(topic, QoS::AtMostOnce, false, json);
|
||||
}
|
||||
|
||||
pub fn publish_status(client: &Client, topic_base: &str, hostname: &str, status: &str) {
|
||||
let topic = format!("{}/{}/status", topic_base, hostname);
|
||||
let _ = client.publish(topic, QoS::AtLeastOnce, true, status);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user