On Wed, 2024-05-01 at 18:21 +0200, Francis.Montagnac(a)inria.fr wrote:
On Wed, 01 May 2024 17:01:47 +0100 Patrick O'Callaghan wrote:
> On Wed, 2024-05-01 at 14:42 +0200,
> Francis.Montagnac(a)inria.fr wrote:
> > On Wed, 01 May 2024 10:51:34 +0100 Patrick O'Callaghan wrote:
> > > May 01 08:00:50 Bree kernel: Freezing user space processes
> > > and hibernation did work. Possibly a timing issue, so I'll have
> > > to
> > > look at my hibernate-preparation script:
> > Yes: simply replace ExecStart by ExecStartPre. This will make
> > systemd-hibernate surely start after this script.
> > You don't need to specify an ExecStart.
> I want to disable swap on zram0 and make sure it's enabled on
> secondary storage.
I got that.
> Do you mean that will happen automatically?
No: your hibernate-preparation script is needed.
systemd do not wait for an ExecStart command to finish before
starting
the next job (here systemd-hibernate.service).
On the opposite, it waits for an ExecStartPre to finish before
executing the ExecStart.
Yes,that makes sense.
I was wrong saying that an ExecStart was not needed.
Try thus that:
[Unit]
Description=Enable swap file and disable zram before hibernate
Before=systemd-hibernate.service
[Service]
SyslogIdentifier=%N
User=root
Type=oneshot
ExecStartPre=/bin/bash -c ' \
swapon -a; \
swapoff /dev/zram0; \
exit 0; \
'
ExecStart=/bin/true
[Install]
WantedBy=systemd-hibernate.service
I'll try that, thanks.
poc