mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-11 05:17:44 +03:00
core: automatically add dependency on systemd-remount-fs.service if StateDirectory= is used
And similar for other settings that require a writable /var/. Rationale: if these options are used for early-boot services (such as systemd-pstore.service) we need /var/ writable. And if /var/ is on the root fs, then systemd-remount-fs.service is the service that ensures that /var/ is writable. This allows us to remove explicit deps in services such as systemd-pstore.service.
This commit is contained in:
parent
167241912f
commit
f3b7a79b97
@ -1047,6 +1047,16 @@ int unit_add_exec_dependencies(Unit *u, ExecContext *c) {
|
||||
if (!MANAGER_IS_SYSTEM(u->manager))
|
||||
return 0;
|
||||
|
||||
/* For the following three directory types we need write access, and /var/ is possibly on the root
|
||||
* fs. Hence order after systemd-remount-fs.service, to ensure things are writable. */
|
||||
if (!strv_isempty(c->directories[EXEC_DIRECTORY_STATE].paths) ||
|
||||
!strv_isempty(c->directories[EXEC_DIRECTORY_CACHE].paths) ||
|
||||
!strv_isempty(c->directories[EXEC_DIRECTORY_LOGS].paths)) {
|
||||
r = unit_add_dependency_by_name(u, UNIT_AFTER, SPECIAL_REMOUNT_FS_SERVICE, true, UNIT_DEPENDENCY_FILE);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
|
||||
if (c->private_tmp) {
|
||||
const char *p;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user