On Thu, 2 Apr 2015, Lennart Poettering wrote:

On Thu, 02.04.15 18:43, Dimitrios Apostolou (ji...@gmx.net) wrote:

Hello list,

I'm having trouble to auto-activate a unit on resume, after suspend-to-ram
or hibernation. The unit properly stops when suspending (because of
Conflicts=sleep.target), but does not restart after resuming.

We do not really support that right now. Suspend/hibernate is
implemented as a single transaction, and you cannot stop a unit
and start it in the same transaction.

Thanks, this is a nice explanation, I wish this was documented because there are various hackish ways all over the internet, that might or might not work after much fiddling around.


A hackish way to implement this is by using the suspend callout dir
/usr/lib/systemd/system-sleep/ (see systemd-suspend.service(8) for
details), and enqueue a stop and a start job from there, depending on
whether the hook is called before or after the
suspend/hibernation. But yeah, this is hackish.

So I wanted to avoid that because of dependencies - I need the units to be stopped in proper order, so I thought that these dependencies are better be expressed in the unit file. But I guess it's OK to do "systemctl start/stop" in the system-sleep scripts, so that will work for me.


Usually if one wants to do that one is just working around some
problems that are better solved in a different way.

Why precisely do you need this feature?

I need to properly terminate system accounting, in the same way that it happens when shutting down, so that a relevant record is written. Same when resuming, I need it to be identical to booting the system.


Thanks,
Dimitris



Lennart

--
Lennart Poettering, Red Hat

_______________________________________________
systemd-devel mailing list
systemd-devel@lists.freedesktop.org
http://lists.freedesktop.org/mailman/listinfo/systemd-devel

Reply via email to