summaryrefslogtreecommitdiff
path: root/units
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2012-07-11 02:41:16 +0200
committerLennart Poettering <lennart@poettering.net>2012-07-11 02:41:16 +0200
commitb8156be03f71c53072c7126bb418410acbef6c81 (patch)
tree04f650efd49798b9c4cadfd521952d5a91f3fb74 /units
parent14a65d65a0c25ba4809b8d97f54ebf3e12eac84c (diff)
journal: replace implicit flushing of journal by explicit one
The old automatism that the flushing of the journal from /run to /var was triggered by the appearance of /var/log/journal is broken if that directory is mounted from another host and hence always available to be useful as mount point. To avoid probelsm with this, introduce a new unit that is explicitly orderer after all mounte files systems and triggers the flushing.
Diffstat (limited to 'units')
-rw-r--r--units/.gitignore1
-rw-r--r--units/systemd-journal-flush.service.in18
-rw-r--r--units/systemd-journald.service.in1
3 files changed, 20 insertions, 0 deletions
diff --git a/units/.gitignore b/units/.gitignore
index 544994da4d..de5117914d 100644
--- a/units/.gitignore
+++ b/units/.gitignore
@@ -1,3 +1,4 @@
+/systemd-journal-flush.service
/systemd-hibernate.service
/systemd-suspend.service
/console-getty.service
diff --git a/units/systemd-journal-flush.service.in b/units/systemd-journal-flush.service.in
new file mode 100644
index 0000000000..503e8a63b8
--- /dev/null
+++ b/units/systemd-journal-flush.service.in
@@ -0,0 +1,18 @@
+# This file is part of systemd.
+#
+# systemd is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Lesser General Public License as published by
+# the Free Software Foundation; either version 2.1 of the License, or
+# (at your option) any later version.
+
+[Unit]
+Description=Trigger Flushing of Journal to Persistent Storage
+Documentation=man:systemd-journald.service(8) man:journald.conf(5)
+DefaultDependencies=no
+Requires=systemd-journald.service
+After=systemd-journald.service local-fs.target remote-fs.target
+Before=systemd-user-sessions.service
+
+[Service]
+ExecStart=@rootbindir@/systemctl kill --kill-who=main --signal=SIGUSR1 systemd-journald.service
+Type=oneshot
diff --git a/units/systemd-journald.service.in b/units/systemd-journald.service.in
index 9552b454a3..3899745306 100644
--- a/units/systemd-journald.service.in
+++ b/units/systemd-journald.service.in
@@ -9,6 +9,7 @@
Description=Journal Service
Documentation=man:systemd-journald.service(8) man:journald.conf(5)
DefaultDependencies=no
+Wants=systemd-journal-flush.service
Requires=systemd-journald.socket
After=systemd-journald.socket syslog.socket