From c7b508592b28ee1e62350f0d249856811371f631 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 29 Sep 2010 02:52:22 +0200 Subject: [PATCH] units: properly terminate readahead collection 10s after boot --- Makefile.am | 6 +++++- fixme | 2 ++ units/.gitignore | 1 + units/systemd-readahead-collect.service.in | 2 +- units/systemd-readahead-done.service.in | 20 ++++++++++++++++++++ units/systemd-readahead-done.timer | 19 +++++++++++++++++++ units/systemd-readahead-replay.service.in | 1 - 7 files changed, 48 insertions(+), 3 deletions(-) create mode 100644 units/systemd-readahead-done.service.in create mode 100644 units/systemd-readahead-done.timer diff --git a/Makefile.am b/Makefile.am index b3ab55065..0a33c0635 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 3e7f921d9..e7bf69c9f 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 1b5b12256..f5a42dd53 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 c3fb2e644..6987cd493 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 000000000..d665e45f2 --- /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 000000000..d144bfaec --- /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 f6ca475ae..280e7204c 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 -- 2.30.2