Я сделал файл /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 file:
* * * * * /bin/bash /root/startup.sh, но через минуту, когда создается файл output.txt, и когда я его открываю, он пуст и в нем нет содержимого. Почему?
На веб-сайте так много статей, поэтому многие вопросы и ответы по этой проблеме, но не из них, уведомили меня об этой глупой ошибке:
export DISPLAY=":0" export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" export SHELL="/bin/bash"Вместо этого следует использовать 3 строки в мой вопрос. Я должен был добавить export перед ними. И это работает.
По моему опыту вам также нужно установить переменную XAUTHORITY.
export XAUTHORITY=/home/<user>/.Xauthority
Когда вы запускаете свой скрипт как root через cron, вероятно, у корневого пользователя нет файла .Xauthority. Но поскольку вы используете root в сеансе cron, вы можете использовать его у своего обычного пользователя.
На веб-сайте так много статей, поэтому многие вопросы и ответы по этой проблеме, но не из них, уведомили меня об этой глупой ошибке:
export DISPLAY=":0" export PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin" export SHELL="/bin/bash"Вместо этого следует использовать 3 строки в мой вопрос. Я должен был добавить export перед ними. И это работает.
По моему опыту вам также нужно установить переменную XAUTHORITY.
export XAUTHORITY=/home/<user>/.Xauthority
Когда вы запускаете свой скрипт как root через cron, вероятно, у корневого пользователя нет файла .Xauthority. Но поскольку вы используете root в сеансе cron, вы можете использовать его у своего обычного пользователя.