[Pkg-acpi-devel] Bug#550546: sleep.sh does not lock screen correctly
Carlo Contavalli
ccontavalli at gmail.com
Sun Oct 11 01:31:18 UTC 2009
Package: acpid
Version: 1.0.10-2
Severity: normal
Short story:
- I press the sleep button on my laptop
- it goes to sleep (suspend to ram)
- when it resumes, the screen is unlocked
- despite me setting LOCK_SCREEN to true
in /etc/default/acpi
I believe the bug to be in sleep.sh, here's a snippet of the
code:
if pidof xscreensaver > /dev/null; then
for x in /tmp/.X11-unix/*; do
displaynum=`echo $x | sed s#/tmp/.X11-unix/X##`
getXuser;
if [ x"$XAUTHORITY" != x"" ]; then
export DISPLAY=":$displaynum"
. /usr/share/acpi-support/screenblank
fi
done
fi
if I run with bash -x, I can see that:
[...]
+ pidof xscreensaver
+ for x in '/tmp/.X11-unix/*'
++ echo /tmp/.X11-unix/X0
++ sed s#/tmp/.X11-unix/X##
+ displaynum=0
+ getXuser
++ pinky -fw
++ awk '{ if ($2 == ":0" || $(NF) == ":0" ) { print $1; exit; } }'
+ user=
+ '[' x = x ']'
++ pgrep -n startx
+ startx=
So:
- xscreensaver is running
- displaynum is set to 0 (# ls /tmp/.X11-unix/ gives X0)
- getXuser runs pinky, and tries to find the username on display :0
- doesn't find it, and return an empty AUTHORITY
Eg, getXuser cannot find my AUTHORITY file, so screenblank is never run.
The problem is 'displaynum'. The script sets it to 0, so awk matches
for $2 == ":0" or $NF == ":0". But if I run pinky -fw, neither $2 nor $NF
are set to :0:
# pinky -fw
ccontavalli pts/0 03:08 Oct 10 22:45 :0.0
ccontavalli pts/1 Oct 10 23:11 :0.0
ccontavalli pts/2 Oct 11 02:05 :0.0
awk should match for :0.0 instead!!
from my bash, if I run:
. /usr/share/acpi-support/power-funcs
export displaynum=0.0
getXuser
echo $XUSER
echo $XAUTHORITY
I get the right result:
ccontavalli
/home/ccontavalli/.Xauthority
While if I run:
export displaynum=0 [like it is done by sleep.sh]
getXuser
echo $XUSER
echo $XAUTHORITY
I get no result, which is wrong!
-- System Information:
Debian Release: squeeze/sid
APT prefers testing
APT policy: (1100, 'testing'), (500, 'unstable'), (500, 'stable')
Architecture: i386 (i686)
Kernel: Linux 2.6.30-1-686 (SMP w/2 CPU cores)
Locale: LANG=C, LC_CTYPE=C (charmap=ANSI_X3.4-1968)
Shell: /bin/sh linked to /bin/dash
Versions of packages acpid depends on:
ii libc6 2.9-25 GNU C Library: Shared libraries
ii lsb-base 3.2-23 Linux Standard Base 3.2 init scrip
ii module-init-tools 3.10-3 tools for managing Linux kernel mo
Versions of packages acpid recommends:
ii acpi-support-base 0.123-1 scripts for handling base ACPI eve
acpid suggests no packages.
-- no debconf information
More information about the Pkg-acpi-devel
mailing list