From 85f564f2b4c580bc151d05559e6ed0614919da8a Mon Sep 17 00:00:00 2001 From: Christian Muck Date: Mon, 4 Jun 2012 09:08:52 +0200 Subject: [GDLT-90] Implemented systemd watchdog concept in dlt-system Signed-off-by: Christian Muck --- src/system/dlt-system.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) (limited to 'src/system/dlt-system.c') diff --git a/src/system/dlt-system.c b/src/system/dlt-system.c index 6e1d22e..93e0873 100644 --- a/src/system/dlt-system.c +++ b/src/system/dlt-system.c @@ -48,12 +48,19 @@ #include #include +#if defined(DLT_SYSTEMD_WATCHDOG_ENABLE) || defined(DLT_SYSTEMD_ENABLE) +#include "sd-daemon.h" +#endif + DLT_DECLARE_CONTEXT(dltsystem) int main(int argc, char* argv[]) { DltSystemCliOptions options; DltSystemConfiguration config; +#if defined(DLT_SYSTEMD_WATCHDOG_ENABLE) || defined(DLT_SYSTEMD_ENABLE) + int ret; +#endif if(read_command_line(&options, argc, argv) < 0) { @@ -68,7 +75,24 @@ int main(int argc, char* argv[]) } DLT_REGISTER_APP(config.ApplicationId, "DLT System Manager"); DLT_REGISTER_CONTEXT(dltsystem,"MGR", "Context of main dlt system manager"); - sleep(1); + +#if defined(DLT_SYSTEMD_WATCHDOG_ENABLE) || defined(DLT_SYSTEMD_ENABLE) + ret = sd_booted(); + + if(ret == 0){ + DLT_LOG(dltsystem, DLT_LOG_INFO, DLT_STRING("system not booted with systemd!\n")); + } + else if(ret < 0) + { + DLT_LOG(dltsystem, DLT_LOG_ERROR, DLT_STRING("sd_booted failed!\n")); + return -1; + } + else + { + DLT_LOG(dltsystem, DLT_LOG_INFO, DLT_STRING("system booted with systemd\n")); + } +#endif + DLT_LOG(dltsystem, DLT_LOG_DEBUG, DLT_STRING("Configuration loaded.")); if(options.Daemonize > 0) -- cgit v1.2.1