diff options
author | Luca Boccassi <luca.boccassi@microsoft.com> | 2020-07-30 20:37:10 +0200 |
---|---|---|
committer | Luca Boccassi <luca.boccassi@microsoft.com> | 2021-01-18 18:24:05 +0100 |
commit | 5e8deb94c6f05137942b10b5288a37d9b09fd43f (patch) | |
tree | 1cbed6e76c6398d4c183a6b71e0a9927386833d8 /src/core/dbus-unit.c | |
parent | MountAPIVFS: always mount a tmpfs on /run (diff) | |
download | systemd-5e8deb94c6f05137942b10b5288a37d9b09fd43f.tar.xz systemd-5e8deb94c6f05137942b10b5288a37d9b09fd43f.zip |
core: add DBUS method to bind mount new nodes without service restart
Allow to setup new bind mounts for a service at runtime (via either
DBUS or a new 'systemctl bind' verb) with a new helper that forks into
the unit's mount namespace.
Add a new integration test to cover this.
Useful for zero-downtime addition to services that are running inside
mount namespaces, especially when using RootImage/RootDirectory.
If a service runs with a read-only root, a tmpfs is added on /run
to ensure we can create the airlock directory for incoming mounts
under /run/host/incoming.
Diffstat (limited to 'src/core/dbus-unit.c')
-rw-r--r-- | src/core/dbus-unit.c | 32 |
1 files changed, 0 insertions, 32 deletions
diff --git a/src/core/dbus-unit.c b/src/core/dbus-unit.c index 427152a757..67cc58ee9e 100644 --- a/src/core/dbus-unit.c +++ b/src/core/dbus-unit.c @@ -323,38 +323,6 @@ static int property_get_load_error( return sd_bus_message_append(reply, "(ss)", NULL, NULL); } -static int bus_verify_manage_units_async_full( - Unit *u, - const char *verb, - int capability, - const char *polkit_message, - bool interactive, - sd_bus_message *call, - sd_bus_error *error) { - - const char *details[9] = { - "unit", u->id, - "verb", verb, - }; - - if (polkit_message) { - details[4] = "polkit.message"; - details[5] = polkit_message; - details[6] = "polkit.gettext_domain"; - details[7] = GETTEXT_PACKAGE; - } - - return bus_verify_polkit_async( - call, - capability, - "org.freedesktop.systemd1.manage-units", - details, - interactive, - UID_INVALID, - &u->manager->polkit_registry, - error); -} - static const char *const polkit_message_for_job[_JOB_TYPE_MAX] = { [JOB_START] = N_("Authentication is required to start '$(unit)'."), [JOB_STOP] = N_("Authentication is required to stop '$(unit)'."), |