Hi, I have noticed that ExecStop is not being run on following service with following requests:
[Service] Type=oneshot RemainAfterExit=yes ExecStart=/bin/sh -c "sleep 20 && /usr/bin/systemd-cat echo ExecStart.." ExecStop=/bin/sh -c "/usr/bin/systemd-cat echo ExecStop.." $> systemctl start hello.service & $> systemctl stop hello.service I have couple discussions: 1) When a "oneshot" service is being in activating state, why doesn't "stop" request wait for the service to become "active"? I would expect systemd to queue "stop" request as long as service is in "activating" state. I think this kind of behavior is fine for Type=simple but not for Type=oneshot. KillMode=none is the only way to provide atomicity. 2) If I have an "ExecStop" directive, I would expect it to run no matter what. My solution is moving ExecStop to ExecStopPost. ------------------------------------------------- My use case: I have a service which sets up ip filters on ExecStart and removes the filters on ExecStop. Setting up ip filters is done by a script. I have ended up finding my target in an inacceptable state due to "start" "stop" request coming right after each other. Thanks, Umut _______________________________________________ systemd-devel mailing list systemd-devel@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/systemd-devel