summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2010-09-29 02:52:22 +0200
committerLennart Poettering <lennart@poettering.net>2010-09-29 02:55:36 +0200
commitc7b508592b28ee1e62350f0d249856811371f631 (patch)
tree5a2af32fb11886866e433ffe0bd4af48171fdd09
parent89a2f23dcfc9120e96acd11b9424414777a596e9 (diff)
units: properly terminate readahead collection 10s after boot
-rw-r--r--Makefile.am6
-rw-r--r--fixme2
-rw-r--r--units/.gitignore1
-rw-r--r--units/systemd-readahead-collect.service.in2
-rw-r--r--units/systemd-readahead-done.service.in20
-rw-r--r--units/systemd-readahead-done.timer19
-rw-r--r--units/systemd-readahead-replay.service.in1
7 files changed, 48 insertions, 3 deletions
diff --git a/Makefile.am b/Makefile.am
index b3ab55065a..0a33c0635b 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -191,7 +191,8 @@ dist_systemunit_DATA = \
units/bluetooth.target \
units/smartcard.target \
units/tmpwatch.service \
- units/tmpwatch.timer
+ units/tmpwatch.timer \
+ units/systemd-readahead-done.timer
nodist_systemunit_DATA = \
units/sysinit.target \
@@ -213,6 +214,7 @@ nodist_systemunit_DATA = \
units/systemd-random-seed-load.service \
units/systemd-readahead-collect.service \
units/systemd-readahead-replay.service \
+ units/systemd-readahead-done.service \
units/systemd-tmpfiles.service \
units/syslog.target
@@ -243,6 +245,7 @@ EXTRA_DIST = \
units/systemd-random-seed-load.service.in \
units/systemd-readahead-collect.service.in \
units/systemd-readahead-replay.service.in \
+ units/systemd-readahead-done.service.in \
units/systemd-tmpfiles.service.in \
units/syslog.target.in \
units/session/exit.service.in \
@@ -830,6 +833,7 @@ SED_PROCESS = \
$(SED) -e 's,@rootlibexecdir\@,$(rootlibexecdir),g' \
-e 's,@SPECIAL_SYSLOG_SERVICE\@,$(SPECIAL_SYSLOG_SERVICE),g' \
-e 's,@SYSTEMCTL\@,$(rootbindir)/systemctl,g' \
+ -e 's,@SYSTEMD_NOTIFY\@,$(rootbindir)/systemd-notify,g' \
-e 's,@pkgsysconfdir\@,$(pkgsysconfdir),g' \
-e 's,@pkgdatadir\@,$(pkgdatadir),g' \
-e 's,@systemunitdir\@,$(systemunitdir),g' \
diff --git a/fixme b/fixme
index 3e7f921d92..e7bf69c9f4 100644
--- a/fixme
+++ b/fixme
@@ -9,6 +9,8 @@ v11:
* emergency.service should start default.target after C-d. synchronize from fedora's initscripts package
+* verify ordering of random-seed-load and base.target!
+
later:
* do not throw error when .service file is linked to /dev/null
diff --git a/units/.gitignore b/units/.gitignore
index 1b5b12256d..f5a42dd53e 100644
--- a/units/.gitignore
+++ b/units/.gitignore
@@ -1,3 +1,4 @@
+systemd-readahead-done.service
systemd-tmpfiles.service
systemd-readahead-collect.service
systemd-readahead-replay.service
diff --git a/units/systemd-readahead-collect.service.in b/units/systemd-readahead-collect.service.in
index c3fb2e6447..6987cd493c 100644
--- a/units/systemd-readahead-collect.service.in
+++ b/units/systemd-readahead-collect.service.in
@@ -8,6 +8,7 @@
[Unit]
Description=Collect Read-Ahead Data
DefaultDependencies=no
+Wants=systemd-readahead-done.timer
Conflicts=shutdown.target
Before=shutdown.target
@@ -18,4 +19,3 @@ RemainAfterExit=yes
[Install]
WantedBy=default.target
-Also=systemd-readahead-replay.service
diff --git a/units/systemd-readahead-done.service.in b/units/systemd-readahead-done.service.in
new file mode 100644
index 0000000000..d665e45f24
--- /dev/null
+++ b/units/systemd-readahead-done.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=Stop Read-Ahead Data Collection
+DefaultDependencies=no
+Conflicts=shutdown.target
+After=default.target
+Before=shutdown.target
+
+[Service]
+Type=oneshot
+ExecStart=@SYSTEMD_NOTIFY@ --readahead=done
+
+[Install]
+Also=systemd-readahead-collect.service
diff --git a/units/systemd-readahead-done.timer b/units/systemd-readahead-done.timer
new file mode 100644
index 0000000000..d144bfaece
--- /dev/null
+++ b/units/systemd-readahead-done.timer
@@ -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=Stop Read-Ahead Data Collection 10s After Completed Startup
+DefaultDependencies=no
+Conflicts=shutdown.target
+After=default.target
+Before=shutdown.target
+
+[Timer]
+OnActiveSec=10s
+
+[Install]
+Also=systemd-readahead-collect.service
diff --git a/units/systemd-readahead-replay.service.in b/units/systemd-readahead-replay.service.in
index f6ca475ae7..280e7204c9 100644
--- a/units/systemd-readahead-replay.service.in
+++ b/units/systemd-readahead-replay.service.in
@@ -18,4 +18,3 @@ RemainAfterExit=yes
[Install]
WantedBy=default.target
-Also=systemd-readahead-collect.service