Назад | Перейти на главную страницу

Могу ли я использовать Upstart для запуска сценария, требующего сеанса X пользователя?

Я написал сценарий, который обрабатывает вывод synclient чтобы определить, отключился ли тачпад ноутбука чудесным образом (Ubuntu, кажется, / любит / делает это в последнее время), и, если да, включает его снова.

Скрипт выглядит примерно так:

#!/bin/bash
while true ; do
    if [ `synclient | grep -e"TouchpadOff[\s]*1" | wc -l` -ge 1 ] ; then
        synclient TouchpadOff=0
    fi
    sleep(3)
done

(У меня нет ноутбука под рукой прямо сейчас, но вы понимаете! Я обновлю позже, когда буду на своем ноутбуке, если это неверно)

Поэтому я попытался запустить это как сценарий выскочки, чтобы моя сенсорная панель могла исцеляться без какого-либо взаимодействия. Но кажется, что synclient не находит текущий сеанс X пользователя, когда мой скрипт запущен.

Я пробовал запустить его, используя что-то вроде su -c myscript.sh ledneb в моей строфе сценария, но безрезультатно.

Стоит ли мне смотреть в сторону / etc / X11 / xinit / xinitrc, а не выскочку?

Есть ли правильный способ запустить этот сценарий в контексте текущего (или даже жестко заданного) сеанса пользователя x?

Вы можете делать то, о чем просите ...

... но я не уверен, что это правильный подход. Если вы еще этого не сделали, рассмотрите возможность сообщения о проблеме в Ubuntu, чтобы ее можно было исправить, поскольку описываемое вами поведение звучит как ошибка.