mirror of
https://github.com/systemd/systemd.git
synced 2024-12-23 21:35:11 +03:00
Merge pull request #4994 from poettering/private-tmp-tmpfiles
automatically clean up PrivateTmp= left-overs in /var/tmp on next boot
This commit is contained in:
commit
56a9366d7d
@ -93,10 +93,10 @@
|
||||
the specified paths. This is equivalent to having them listed
|
||||
explicitly in <varname>RequiresMountsFor=</varname>.</para>
|
||||
|
||||
<para>Similar, units with <varname>PrivateTmp=</varname> enabled
|
||||
automatically get mount unit dependencies for all mounts
|
||||
required to access <filename>/tmp</filename> and
|
||||
<filename>/var/tmp</filename>.</para>
|
||||
<para>Similar, units with <varname>PrivateTmp=</varname> enabled automatically get mount unit dependencies for all
|
||||
mounts required to access <filename>/tmp</filename> and <filename>/var/tmp</filename>. They will also gain an
|
||||
automatic <varname>After=</varname> dependency on
|
||||
<citerefentry><refentrytitle>systemd-tmpfiles-setup.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>.</para>
|
||||
|
||||
<para>Units whose standard output or error output is connected to <option>journal</option>, <option>syslog</option>
|
||||
or <option>kmsg</option> (or their combinations with console output, see below) automatically acquire dependencies
|
||||
@ -1009,8 +1009,11 @@
|
||||
<citerefentry><refentrytitle>systemd.unit</refentrytitle><manvolnum>5</manvolnum></citerefentry> for
|
||||
details. This setting is implied if <varname>DynamicUser=</varname> is set. For this setting the same
|
||||
restrictions regarding mount propagation and privileges apply as for <varname>ReadOnlyPaths=</varname> and
|
||||
related calls, see above.</para></listitem>
|
||||
|
||||
related calls, see above. Enabling this setting has the side effect of adding <varname>Requires=</varname> and
|
||||
<varname>After=</varname> dependencies on all mount units necessary to access <filename>/tmp</filename> and
|
||||
<filename>/var/tmp</filename>. Moreover an implicitly <varname>After=</varname> ordering on
|
||||
<citerefentry><refentrytitle>systemd-tmpfiles-setup.service</refentrytitle><manvolnum>8</manvolnum></citerefentry>
|
||||
is added.</para></listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
|
@ -103,6 +103,7 @@
|
||||
#define SPECIAL_DBUS_SOCKET "dbus.socket"
|
||||
#define SPECIAL_JOURNALD_SOCKET "systemd-journald.socket"
|
||||
#define SPECIAL_JOURNALD_SERVICE "systemd-journald.service"
|
||||
#define SPECIAL_TMPFILES_SETUP_SERVICE "systemd-tmpfiles-setup.service"
|
||||
|
||||
/* Magic init signals */
|
||||
#define SPECIAL_KBREQUEST_TARGET "kbrequest.target"
|
||||
|
@ -866,11 +866,15 @@ int unit_add_exec_dependencies(Unit *u, ExecContext *c) {
|
||||
return 0;
|
||||
|
||||
if (c->private_tmp) {
|
||||
r = unit_require_mounts_for(u, "/tmp");
|
||||
if (r < 0)
|
||||
return r;
|
||||
const char *p;
|
||||
|
||||
r = unit_require_mounts_for(u, "/var/tmp");
|
||||
FOREACH_STRING(p, "/tmp", "/var/tmp") {
|
||||
r = unit_require_mounts_for(u, p);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
|
||||
r = unit_add_dependency_by_name(u, UNIT_AFTER, SPECIAL_TMPFILES_SETUP_SERVICE, NULL, true);
|
||||
if (r < 0)
|
||||
return r;
|
||||
}
|
||||
|
@ -16,3 +16,7 @@ x /tmp/systemd-private-%b-*
|
||||
X /tmp/systemd-private-%b-*/tmp
|
||||
x /var/tmp/systemd-private-%b-*
|
||||
X /var/tmp/systemd-private-%b-*/tmp
|
||||
|
||||
# Remove top-level private temporary directories on each boot
|
||||
R! /tmp/systemd-private-*
|
||||
R! /var/tmp/systemd-private-*
|
||||
|
Loading…
Reference in New Issue
Block a user