2016-05-30 3 views
0

Я пытаюсь создать скрипт, который запускается перед сном. Может ли кто-нибудь сказать мне, что я делаю неправильно здесь? Этот скрипт отлично работает, когда я запускаю команду в терминале.скрипт не работает до сна

[email protected] /etc/pm/sleep.d $ ls 
total 1MB 
drwxr-xr-x 2 root root 1MB May 30 15:21 . 
drwxr-xr-x 5 root root 1MB Nov 28 2015 .. 
-rwxr-xr-x 1 root root 1MB Jun 26 2015 10_grub-common 
-rwxr-xr-x 1 root root 1MB Dec 6 2013 10_unattended-upgrades-hibernate 
-rwxr-xr-x 1 root root 1MB May 22 2012 novatel_3g_suspend 
-rwxr-xr-x 1 root root 1MB May 30 15:20 revert_kb_on_sleep 

[email protected] /etc/pm/sleep.d $ cat revert_kb_on_sleep 
sh -c "/home/king/Desktop/Scripts/rotate_desktop normal; /home/king/Desktop/Scripts/misc/my_keyboard on" 

Выход из журнала:

$ cat /var/log/pm-suspend.log 
Running hook /etc/pm/sleep.d/revert_kb_on_sleep suspend suspend: 
Can't open display 
Can't open display 
xrandr: --rotate requires an argument 
Try 'xrandr --help' for more information. 
No protocol specified 
Unable to connect to X server 
/etc/pm/sleep.d/revert_kb_on_sleep suspend suspend: success. 

Mon May 30 15:23:39 EDT 2016: performing suspend 
Mon May 30 15:27:59 EDT 2016: Awake. 
Mon May 30 15:27:59 EDT 2016: Running hooks for resume 
Running hook /etc/pm/sleep.d/revert_kb_on_sleep resume suspend: 
Can't open display 
Can't open display 
xrandr: --rotate requires an argument 
Try 'xrandr --help' for more information. 
No protocol specified 
Unable to connect to X server 
/etc/pm/sleep.d/revert_kb_on_sleep resume suspend: Returned exit code 1. 
+0

Похоже, что переменная среды контекста X-Windows/DISPLAY не установлена ​​при запуске из демона - вы можете попробовать добавить что-то вроде '-d: 0.0' (опция отображения) к xrandr, а затем надеяться, что вы «Входите в разрешения. У меня такое ощущение, что то, что вы пытаетесь сделать, не относится к директории sleep.d, но, возможно, у вашего менеджера окон/настольных компьютеров есть место, где вы можете указать некоторые действия ...? –

+0

Im довольно новичок в linux mint, я сделаю некоторые исследования и комментарии, если найду что-нибудь. Спасибо за совет. Для тех, кто читает это в будущем, '-d: 0.0' вызовет проблемы с разрешениями. Я обнаружил это, когда сначала получал скрипт для работы. – Rilcon42

+0

Не повезло найти другой способ сделать это ... У кого-нибудь есть идеи? – Rilcon42

ответ

0

Любая удача с этим? Я написал сценарий для запуска после пробуждения, и у меня возникают подобные ошибки. Этот сценарий должен отключить дисплей ноутбука при пробуждении от сна.

case "${1}" in 
resume|thaw) 
screen_status=$(xset -q -display :0.0 | tail -1 | sed 's/^[ \t]*//g') 

if [[ "$screen_status" = "Monitor is On" ]]; then 
    sleep 1 && xset -display :0.0 dpms force off 
fi 
;; 
esac 

Но я получаю следующее сообщение об ошибке:

No protocol specified xset: unable to open display ":0.0"

Я пытался заставить его установить screen_status как «монитор выключен», когда он не может получить дисплей, так что он запускает условие для выполнения xset в любом случае, но это тоже не работает, потому что он не может получить доступ к дисплею. Тем временем я установил xfce4-power-manager для отключения экрана через 1 минуту. Стоять ждать минут лучше, чем ничего!

Смежные вопросы