summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDimitri John Ledkov <dimitri.j.ledkov@intel.com>2015-07-03 11:34:12 +0100
committerDimitri John Ledkov <dimitri.j.ledkov@intel.com>2015-07-03 17:16:09 +0100
commitac892057c2ddd8f06323c73ebd80423cc3ec7190 (patch)
tree0c8fb0d9df2ce27be67756a945f4098b0c995931
parented3fd0493160522b5878ef261bcee6f2d7d37ba5 (diff)
journal: in persistent mode create /var/log/journal, with all parents.
systemd-journald races with systemd-tmpfiles-setup, and hence both are started at about the same time. On a bare-bones system (e.g. with empty /var, or even non-existent /var), systemd-tmpfiles will create /var/log. But it can happen too late, that is systemd-journald already attempted to mkdir /var/log/journal, ignoring the error. Thus failing to create /var/log/journal. One option, without modifiying the dependency graph is to create /var/log/journal directory with parents, when persistent storage has been requested.
-rw-r--r--src/journal/journald-server.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c
index f7402984af..46358e1c1a 100644
--- a/src/journal/journald-server.c
+++ b/src/journal/journald-server.c
@@ -943,7 +943,7 @@ static int system_journal_open(Server *s, bool flush_requested) {
* the machine path */
if (s->storage == STORAGE_PERSISTENT)
- (void) mkdir("/var/log/journal/", 0755);
+ (void) mkdir_p("/var/log/journal/", 0755);
fn = strjoina("/var/log/journal/", ids);
(void) mkdir(fn, 0755);