}
/* Turn off core dumps but only if we're running outside of a container. */
-void disable_core_dumps(void) {
- if (detect_container() <= 0)
- (void) write_string_file("/proc/sys/kernel/core_pattern", "|/bin/false", 0);
+void disable_coredumps(void) {
+ int r;
+
+ if (detect_container() > 0)
+ return;
+
+ r = write_string_file("/proc/sys/kernel/core_pattern", "|/bin/false", 0);
+ if (r < 0)
+ log_debug_errno(r, "Failed to turn off coredumps, ignoring: %m");
}
int str_verscmp(const char *s1, const char *s2);
-void disable_core_dumps(void);
+void disable_coredumps(void);
/* But at the same time, turn off the core_pattern logic by default, so that no coredumps are stored
* until the systemd-coredump tool is enabled via sysctl. */
if (!skip_setup)
- disable_core_dumps();
+ disable_coredumps();
}
static void do_reexecute(
if (!in_container)
sync_with_progress();
- /* Prevent coredumps */
- disable_core_dumps();
+ disable_coredumps();
log_info("Sending SIGTERM to remaining processes...");
broadcast_signal(SIGTERM, true, true);
/* If this is PID 1 disable coredump collection, we'll unlikely be able to process it later on. */
if (is_pid1_crash((const char**) context)) {
log_notice("Due to PID 1 having crashed coredump collection will now be turned off.");
- disable_core_dumps();
+ disable_coredumps();
}
set_iovec_field(iovec, n_iovec, "COREDUMP_UNIT=", context[CONTEXT_UNIT]);