crontab xinput возвращает пустые результаты

Я сделал файл /root/startup.sh (я нахожусь на Ubuntu с Gnome 3.22.3 с рут-доступом) со следующим содержимым:

#!/bin/bash
DISPLAY=":0"
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
SHELL="/bin/bash"

$(/usr/bin/xinput list > /root/Desktop/output.txt)

, и я поместил эту строку в файл crontab -e :

* * * * *  /bin/bash /root/startup.sh

, но через минуту, когда файл output.txt создан и когда я его открываю, он пуст и в нем нет содержимого.
Почему?

2
задан 4 May 2017 в 10:02

2 ответа

В Интернете так много статей, так много вопросов и ответов по этому вопросу, но ни одна из них не уведомила меня об этой глупой ошибке:

export DISPLAY=":0"
export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
export SHELL="/bin/bash"

Это следует использовать вместо 3 строк в моем вопрос.
Я должен был добавить export перед ними.
И это работает.

0
ответ дан 4 May 2017 в 10:02

По моему опыту, также необходимо установить переменную XAUTHORITY.

export XAUTHORITY=/home/<user>/.Xauthority

, Поскольку Вы запускаете свой сценарий как корень через крон, вероятно, у пользователя root нет.Xauthority файла. Но потому что Вы - корень на сессии крона, можно использовать тот от обычного пользователя.

1
ответ дан 4 May 2017 в 20:02

Другие вопросы по тегам:

Похожие вопросы: