diff --git a/Makefile.am b/Makefile.am index 2c1caa59891..384778ee60c 100644 --- a/Makefile.am +++ b/Makefile.am @@ -50,6 +50,7 @@ AM_CPPFLAGS = \ -DSYSTEMD_BINARY_PATH=\"$(rootbindir)/systemd\" \ -DSYSTEMCTL_BINARY_PATH=\"$(rootbindir)/systemctl\" \ -DRUNTIME_DIR=\"$(localstatedir)/run\" \ + -DRANDOM_SEED=\"$(localstatedir)/lib/random-seed\" \ -I $(top_srcdir)/src rootbin_PROGRAMS = \ @@ -69,7 +70,8 @@ rootlibexec_PROGRAMS = \ systemd-logger \ systemd-cgroups-agent \ systemd-initctl \ - systemd-update-utmp + systemd-update-utmp \ + systemd-random-seed noinst_PROGRAMS = \ test-engine \ @@ -161,6 +163,8 @@ nodist_systemunit_DATA = \ units/systemd-logger.service \ units/systemd-update-utmp-runlevel.service \ units/systemd-update-utmp-shutdown.service \ + units/systemd-random-seed-save.service \ + units/systemd-random-seed-load.service \ units/syslog.target dist_sessionunit_DATA = \ @@ -180,6 +184,8 @@ EXTRA_DIST = \ units/systemd-logger.service.in \ units/systemd-update-utmp-runlevel.service.in \ units/systemd-update-utmp-shutdown.service.in \ + units/systemd-random-seed-save.service.in \ + units/systemd-random-seed-load.service.in \ units/syslog.target.in \ units/session/exit.service.in \ systemd.pc.in @@ -514,6 +520,15 @@ systemd_update_utmp_LDADD = \ $(DBUS_LIBS) \ $(AUDIT_LIBS) +systemd_random_seed_SOURCES = \ + src/random-seed.c + +systemd_random_seed_CFLAGS = \ + $(AM_CFLAGS) + +systemd_random_seed_LDADD = \ + libsystemd-basic.la + systemd_cgroups_agent_SOURCES = \ src/cgroups-agent.c \ src/dbus-common.c diff --git a/fixme b/fixme index e9acede7304..2df43c34b6f 100644 --- a/fixme +++ b/fixme @@ -23,7 +23,7 @@ * add #ifdefs for non-sysv builds -* reinvestigate random seed, hwclock +* reinvestigate hwclock * "disabled" load state? diff --git a/units/systemd-random-seed-load.service.in b/units/systemd-random-seed-load.service.in new file mode 100644 index 00000000000..4d5841d6f55 --- /dev/null +++ b/units/systemd-random-seed-load.service.in @@ -0,0 +1,20 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. + +[Unit] +Description=Load Random Seed +DefaultDependencies=no +After=local-fs.target +Conflicts=shutdown.target +Before=shutdown.target + +[Service] +Type=oneshot +ExecStart=-@rootlibexecdir@/systemd-random-seed load + +[Install] +WantedBy=sysinit.target diff --git a/units/systemd-random-seed-save.service.in b/units/systemd-random-seed-save.service.in new file mode 100644 index 00000000000..654c859e22b --- /dev/null +++ b/units/systemd-random-seed-save.service.in @@ -0,0 +1,19 @@ +# This file is part of systemd. +# +# systemd is free software; you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. + +[Unit] +Description=Save Random Seed +DefaultDependencies=no +Before=poweroff.service reboot.service halt.service killall.service +Conflicts=systemd-random-seed-save.service + +[Service] +Type=oneshot +ExecStart=-@rootlibexecdir@/systemd-random-seed save + +[Install] +WantedBy=shutdown.target