1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2024-12-23 17:34:00 +03:00
systemd-stable/tmpfiles.d/meson.build
Eric DeVolder f00c36641a pstore: introduce tmpfiles.d/systemd-pstore.conf
The systemd pstore service archives the contents of /sys/fs/pstore
upon boot so that there is room for a subsequent dump.  The issue is
that while the service is present, the kernel still needs to be
configured to write data into the pstore. The kernel has two
parameters, crash_kexec_post_notifiers and printk.always_kmsg_dump,
that control writes into pstore.

The crash_kexec_post_notifiers parameter enables the kernel to write
dmesg (including stack trace) into pstore upon a panic, and
printk.always_kmsg_dump parameter enables the kernel to write dmesg
upon a shutdown (shutdown, reboot, halt).

As it stands today, these parameters are not managed/manipulated by
the systemd pstore service, and are solely reliant upon the user [to
have the foresight] to set them on the kernel command line at boot, or
post boot via sysfs. Furthermore, the user would need to set these
parameters in a persistent fashion so that that they are enabled on
subsequent reboots.

This patch introduces the setting of these two kernel parameters via
the systemd tmpfiles technique.
2020-05-15 23:15:26 +02:00

63 lines
2.0 KiB
Meson

# SPDX-License-Identifier: LGPL-2.1+
enable_tmpfiles = conf.get('ENABLE_TMPFILES') == 1
tmpfiles = [['home.conf', ''],
['journal-nocow.conf', ''],
['systemd-nologin.conf', 'HAVE_PAM'],
['systemd-nspawn.conf', 'ENABLE_MACHINED'],
['systemd-tmp.conf', ''],
['portables.conf', 'ENABLE_PORTABLED'],
['systemd-pstore.conf', 'ENABLE_PSTORE'],
['tmp.conf', ''],
['x11.conf', ''],
['legacy.conf', 'HAVE_SYSV_COMPAT'],
]
foreach pair : tmpfiles
if not enable_tmpfiles
# do nothing
elif pair[1] == '' or conf.get(pair[1]) == 1
install_data(pair[0], install_dir : tmpfilesdir)
else
message('Not installing tmpfiles.d/@0@ because @1@ is @2@'
.format(pair[0], pair[1], conf.get(pair[1], 0)))
endif
endforeach
in_files = ['static-nodes-permissions.conf']
foreach file : in_files
gen = configure_file(
input : file + '.in',
output : file,
configuration : substs)
if enable_tmpfiles
install_data(gen,
install_dir : tmpfilesdir)
endif
endforeach
m4_files = ['etc.conf',
'systemd.conf',
'var.conf']
foreach file : m4_files
if enable_tmpfiles
custom_target(
'tmpfiles.d_' + file,
input : file + '.m4',
output: file,
command : [meson_apply_m4, config_h, '@INPUT@'],
capture : true,
install : true,
install_dir : tmpfilesdir)
endif
endforeach
if enable_tmpfiles
meson.add_install_script(
'sh', '-c',
mkdir_p.format(join_paths(sysconfdir, 'tmpfiles.d')))
endif