MSI U160, kernel-netbook 3.07
pm-suspend переводит машинку в режим ожидания без вопросов, возвращается также нормально по нажатию кнопки питания.
однако при нажатии на кнопку sleep происходит что то странное - машинка уходит в суспенд, пробуждается по нажатии кнопочки питания, ждет секунды 3-4 и уходит обратно, потом по нажатии кнопочки пробуждается с кернел паником.
это проблемы acpi?
вот мой handler.sh
#!/bin/sh
# Default acpi script that takes an entry for all actions
# NOTE: This is a 2.6-centric script.  If you use 2.4.x, you'll have to
#       modify it to not use /sys
minspeed=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq`
maxspeed=`cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq`
setspeed="/sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed"
set $*
case "$1" in
    button/power)
        case "$2" in
           PBTN|PWRF) /usr/sbin/hibernate -f;;
            *) logger "ACPI action undefined: $2" ;;
          esac
        ;;
button/sleep)
    case "$2" in
        SLPB) 
		#echo -n mem >/sys/power/state 
		/usr/sbin/pm-suspend 
	;;
		 *)    logger "ACPI action undefined: $2" ;;
    esac
    ;;
ac_adapter)
        case "$2" in
            AC|ACAD|ADP0)
                case "$4" in
                    00000000)
                        echo -n $minspeed >$setspeed
                        #/etc/laptop-mode/laptop-mode start
                    ;;
                    00000001)
                        echo -n $maxspeed >$setspeed
                        #/etc/laptop-mode/laptop-mode stop
                    ;;
                esac
                ;;
            *)  logger "ACPI action undefined: $2" ;;
        esac
        ;;
    battery)
        case "$2" in
            BAT1)
                case "$4" in
                    00000000)   #echo "offline" >/dev/tty5
                    ;;
                    00000001)   #echo "online"  >/dev/tty5
                    ;;
                esac
                ;;
            CPU0)	
                ;;
            *)  logger "ACPI action undefined: $2" ;;
        esac
        ;;
button/lid)
        #echo "LID switched!">/dev/tty5
	/usr/sbin/pm-suspend &
	DISPLAY=:0.0 su -c - shohart /usr/bin/slimlock
       ;;
esac

теперь происходит чтото выше моего понимания.
при изменении строки DISPLAY=:0.0 su -c - shohart /usr/bin/slimlock на DISPLAY=:0.0 su -c - username /usr/bin/slimlock суспенд и гибернация работают как надо, но соответственно Слим лок не появляется.
объясните пожалуйста что такое? неправильная команда с ошибкой в логе тормозит какую-то багу и позволяет системе работать дальше? или как?

Господа в голове каша не могу разобраться,просто алчу помощи!
прочитал вики pm-utils про установку slimlock
создал скрипт 20lock в /etc/pm/sleep.d/
#!/bin/sh
 #
 # 20lock: lock workstation on hibernate or suspend
  
 DBUS=$(ps aux | grep 'dbus-launch' | grep -v root)
 if [[ ! -z $DBUS ]];then
  USER=$(echo $DBUS | awk '{print $1}')
  USERHOME=$(getent passwd $USER | cut -d: -f6)
  export XAUTHORITY="$USERHOME/.Xauthority"
  for x in /tmp/.X11-unix/*; do
    DISPLAYNUM=$(echo $x | sed s#/tmp/.X11-unix/X##)
    if [[ -f "$XAUTHORITY" ]]; then
            export DISPLAY=":$DISPLAYNUM"
    fi
  done
 else
  USER=shohart
  USERHOME=/home/shohart
  export XAUTHORITY="$USERHOME/.Xauthority"
  export DISPLAY=":0"
 fi
 
 case "$1" in
    hibernate|suspend)
       su $USER -c "/usr/bin/slimlock" & # or any other such as /usr/bin/xscreensaver-command -lock
       ;;
    thaw|resume)
       ;;
    *) exit $NA
       ;;
 esac

убрал из handler.sh строчку про DISPLAY=:0.0 su -c - shohart /usr/bin/slimlock все теперь суспендится и гибернируется но слимлок так и неявляется.
помогите разобраться!