Why does my Before=sleep.target service run *after resuming*?
5
votes
0
answers
1574
views
I've defined the following service to start a screen locker before suspending :
$ cat /etc/systemd/system/screenlock.service
[Unit]
Description=Lock X session using slock
Before=sleep.target
[Service]
User=my_user
Environment=DISPLAY=:0
ExecStart=/usr/bin/xautolock -locknow
[Install]
WantedBy=sleep.target
It is loaded when booting:
$ systemctl status screenlock.service
● screenlock.service - Lock X session using slock
Loaded: loaded (/etc/systemd/system/screenlock.service; enabled)
Active: inactive (dead)
and it is run at some point between triggering suspend to RAM and resuming work:
$ systemctl status screenlock.service
● screenlock.service - Lock X session using slock
Loaded: loaded (/etc/systemd/system/screenlock.service; enabled)
Active: inactive (dead)
Sep 17 08:22:22 machine systemd[1] : Starting Lock X session using slock...
Sep 17 08:22:22 machine systemd[1] : Started Lock X session using slock.
But **if it's run *before* suspending, why do I see a flicker of the desktop before the screen locker turns on when resuming?** Is
Before
or sleep.target
not defined as one would expect? Is xautolock
or slock
faulty?
(I've verified that there's no other service interfering by disabling this one, suspending, resuming, and getting no screen locker.)
Asked by l0b0
(53368 rep)
Sep 17, 2014, 07:37 AM