diff options
author | Franck Bui <fbui@suse.com> | 2021-09-15 09:13:12 +0200 |
---|---|---|
committer | Franck Bui <fbui@suse.com> | 2021-09-15 12:14:53 +0200 |
commit | 484752e26ae48362b5234269315482a81058b471 (patch) | |
tree | 753cfd049c1cbb5f8790b489da39e21d0df291a7 /src | |
parent | bcc3a1830ea01a8c4b6cb529e33568e86d69eaf0 (diff) | |
download | systemd-484752e26ae48362b5234269315482a81058b471.tar.gz |
shutdown: introduce init_watchdog()
No functional change.
Diffstat (limited to 'src')
-rw-r--r-- | src/shutdown/shutdown.c | 45 |
1 files changed, 25 insertions, 20 deletions
diff --git a/src/shutdown/shutdown.c b/src/shutdown/shutdown.c index 903977bcb1..7ad9930677 100644 --- a/src/shutdown/shutdown.c +++ b/src/shutdown/shutdown.c @@ -307,10 +307,33 @@ static void bump_sysctl_printk_log_level(int min_level) { log_debug_errno(r, "Failed to bump kernel.printk to %i: %m", min_level + 1); } +static void init_watchdog(void) { + const char *s; + int r; + + s = getenv("WATCHDOG_DEVICE"); + if (s) { + r = watchdog_set_device(s); + if (r < 0) + log_warning_errno(r, "Failed to set watchdog device to %s, ignoring: %m", s); + } + + s = getenv("WATCHDOG_USEC"); + if (s) { + usec_t usec; + + r = safe_atou64(s, &usec); + if (r < 0) + log_warning_errno(r, "Failed to parse watchdog timeout '%s', ignoring: %m", s); + else + (void) watchdog_setup(usec); + } +} + int main(int argc, char *argv[]) { bool need_umount, need_swapoff, need_loop_detach, need_dm_detach, need_md_detach, in_container, can_initrd; _cleanup_free_ char *cgroup = NULL; - char *arguments[3], *watchdog_device, *watchdog_usec; + char *arguments[3]; int cmd, r, umount_log_level = LOG_INFO; static const char* const dirs[] = {SYSTEM_SHUTDOWN_PATH, NULL}; @@ -370,25 +393,7 @@ int main(int argc, char *argv[]) { LOG_TARGET_KMSG)) bump_sysctl_printk_log_level(LOG_WARNING); - watchdog_device = getenv("WATCHDOG_DEVICE"); - if (watchdog_device) { - r = watchdog_set_device(watchdog_device); - if (r < 0) - log_warning_errno(r, "Failed to set watchdog device to %s, ignoring: %m", - watchdog_device); - } - - watchdog_usec = getenv("WATCHDOG_USEC"); - if (watchdog_usec) { - usec_t usec; - - r = safe_atou64(watchdog_usec, &usec); - if (r < 0) - log_warning_errno(r, "Failed to parse watchdog timeout '%s', ignoring: %m", - watchdog_usec); - else - (void) watchdog_setup(usec); - } + init_watchdog(); /* Lock us into memory */ (void) mlockall(MCL_CURRENT|MCL_FUTURE); |