summaryrefslogtreecommitdiff
path: root/src/shutdown
diff options
context:
space:
mode:
authorFranck Bui <fbui@suse.com>2021-09-15 09:13:12 +0200
committerFranck Bui <fbui@suse.com>2021-09-15 12:14:53 +0200
commit484752e26ae48362b5234269315482a81058b471 (patch)
tree753cfd049c1cbb5f8790b489da39e21d0df291a7 /src/shutdown
parentbcc3a1830ea01a8c4b6cb529e33568e86d69eaf0 (diff)
downloadsystemd-484752e26ae48362b5234269315482a81058b471.tar.gz
shutdown: introduce init_watchdog()
No functional change.
Diffstat (limited to 'src/shutdown')
-rw-r--r--src/shutdown/shutdown.c45
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);