fix up watchdog init code
[project/procd.git] / state.c
diff --git a/state.c b/state.c
index 618d758..71890a2 100644 (file)
--- a/state.c
+++ b/state.c
@@ -46,6 +46,9 @@ static void state_enter(void)
                break;
 
        case STATE_INIT:
+               // check if the wdt appeared during coldplug
+               if (!watchdog_fd())
+                       watchdog_init();
                LOG("- init -\n");
                log_init();
                procd_connect_ubus();
@@ -63,12 +66,11 @@ static void state_enter(void)
        case STATE_SHUTDOWN:
                LOG("- shutdown -\n");
                procd_inittab_run("shutdown");
+               sync();
                break;
 
        case STATE_HALT:
                LOG("- reboot -\n");
-               sync();
-               sleep(1);
                reboot(reboot_event);
                break;