Summary: | systemd does not execute multiple ExecStart after a daemon-reload | ||
---|---|---|---|
Product: | systemd | Reporter: | Harald Hoyer <harald> |
Component: | general | Assignee: | systemd-bugs |
Status: | RESOLVED FIXED | QA Contact: | systemd-bugs |
Severity: | normal | ||
Priority: | medium | CC: | alexandre, ncosmin, rektide, sylviabz1 |
Version: | unspecified | ||
Hardware: | Other | ||
OS: | All | ||
Whiteboard: | |||
i915 platform: | i915 features: |
Description
Harald Hoyer
2013-09-03 09:11:02 UTC
The problem here is that we have trouble recognizing the same ExecStart= lines before and after we did the reload, hence we currently don't try at all. i.e. let's say you have three ExecStart= lines: ExecStart=/bin/foo ExecStart=/bin/bar ExecStart=/bin/waldo Let's say you are now executing /bin/bar. And now you reload the daemon, but the /bin/bar one was removed, what do you do now, at which point do you continue? And what happens if it's /bin/foo you remove too? And what happens when you delete all three and replace them with ExecStart=/bin/huhu? We should probably do something about this and try to come up with a scheme that at least most of the time manages to continue at some sane point. But I am not sure what the best scheme here would be? Ideas? (In reply to comment #1) > The problem here is that we have trouble recognizing the same ExecStart= > lines before and after we did the reload, hence we currently don't try at > all. > > i.e. let's say you have three ExecStart= lines: > > ExecStart=/bin/foo > ExecStart=/bin/bar > ExecStart=/bin/waldo > > Let's say you are now executing /bin/bar. And now you reload the daemon, but > the /bin/bar one was removed, what do you do now, at which point do you > continue? And what happens if it's /bin/foo you remove too? And what happens > when you delete all three and replace them with ExecStart=/bin/huhu? > > We should probably do something about this and try to come up with a scheme > that at least most of the time manages to continue at some sane point. But I > am not sure what the best scheme here would be? Ideas? Well, maybe delay the daemon-reload until a point of time, where we can safely do that. But that could be indefinitely long... It's not really an option I fear... If a unit file has been modified after a unit is started, and before it stops, then it's probably fair to say that the behaviour is undefined. But a unit whose file is unmodified shouldn't have a behaviour that depends on the timing of entirely unrelated reload events, otherwise multiple ExecStart commands are rather useless, unless one doesn't care that much about whether they get executed. Should be fixed by github #5354 these days. Closing. |
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.