16.07.2018 21:32, John Ioannidis пиÑ?еÑ?: > Assume I have a one-shot service, *phase1.service*, which runs for a while > and then terminates. I want to have a *phase2.service* start up when phase1 > terminates. > > I cannot change anything in phase1.service's systemd files or code or > anything, or I would not be asking this question! > Just add After=phase1.service to phase2.service. For oneshot services startup completes when service ExecStart* commands complete. Request to start phase2.service will be waiting for that. > A dirty workaround is to just have phase2 start before phase1 and run this > script (wait until phase1 starts up, then wait until it finishes, then do > its thing): > > while ! systemctl status phase1.service > /dev/null > do > sleep 10 # still waiting for phase1 to start up > done > while systemctl status phase1.service > /dev/null > do > sleep 10 # still waiting for phase1 to finish > done > # now do the phase2 work > > There has to be a better way of doing this, but I can't figure it out. > Google/Bing/SO searches return lots of other workarounds, mostly for user > sessions, which is not the case here. > > Thanks! > > > > _______________________________________________ > systemd-devel mailing list > systemd-devel at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/systemd-devel >