summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-08-14 19:17:37 +0200
committerLennart Poettering <lennart@poettering.net>2010-08-14 19:17:37 +0200
commitca2cab5dcd3d29f45992a439f54e48faad764c6e (patch)
tree7a77a0c0a7882c521739dafef83182e2a4290ce2
parentd90e1a301d61c3808ac5c0aa3093b2ec913e406b (diff)
random-seed: add little tool for saving/loading random seed on shutdown/boot, but don't enable it by default
-rw-r--r--Makefile.am17
-rw-r--r--fixme2
-rw-r--r--units/systemd-random-seed-load.service.in20
-rw-r--r--units/systemd-random-seed-save.service.in19
4 files changed, 56 insertions, 2 deletions
diff --git a/Makefile.am b/Makefile.am
index 2c1caa5989..384778ee60 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 e9acede730..2df43c34b6 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 0000000000..4d5841d6f5
--- /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 0000000000..654c859e22
--- /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