Sample Header Ad - 728x90

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