1
0
mirror of https://github.com/systemd/systemd.git synced 2025-01-11 09:18:07 +03:00

manager: remove transient unit directory during startup

I was testing transient units and user@.service crashed. I restarted it, and
tried to create a transient unit. It failed because
/run/user/1000/systemd/transient/ remained after the previous aborted run:
  Failed to start transient service unit: Unit run-u0.service was already loaded or has a fragment file.

Remove the directory during initial startup so we don't get confused by our own
files.
This commit is contained in:
Zbigniew Jędrzejewski-Szmek 2023-04-04 12:05:16 +02:00 committed by Mike Yuan
parent a23d80d322
commit 45f540a297

View File

@ -1861,6 +1861,10 @@ int manager_startup(Manager *m, FILE *serialization, FDSet *fds, const char *roo
/* This block is (optionally) done with the reloading counter bumped */
_unused_ _cleanup_(manager_reloading_stopp) Manager *reloading = NULL;
/* Make sure we don't have a left-over from a previous run */
if (!serialization)
(void) rm_rf(m->lookup_paths.transient, 0);
/* If we will deserialize make sure that during enumeration this is already known, so we increase the
* counter here already */
if (serialization)