Не может запустить приложение GUI от крона

После выполнения "sudo su -" на ноутбуке Ubuntu 12.04 я сделал "crontab-e", добавило это:

* * * * * env DISPLAY=:0.0 /usr/bin/gnome-calculator

и ожидал в течение многих минут. Ничего Не Произошло. У меня нет внешних мониторов и если я работаю, эта команда "ENV ОТОБРАЖАЕТСЯ =:0.0/usr/bin/gnome-calculator" в терминале, это просто работает. Но не от крона. Почему?

Системный журнал только содержит это:

May 24 14:37:01 localhost cron[1227]: (root) RELOAD (crontabs/root)
May 24 14:37:01 localhost CRON[16432]: (root) CMD (env DISPLAY=:0.0 /usr/bin/gnome-calculator )

И я уже попробовал "xhost +localhost".

[root@NOTEBOOK /var/log] xhost
access control enabled, only authorized clients can connect
INET:localhost.localdomain
SI:localuser:USERNAME
[root@NOTEBOOK /var/log] 

Таким образом, решение для другого вопроса как это на askubunut не сделало работавший.

7
задан 24 May 2014 в 17:27

5 ответов

Переписано в качестве ответа на запрос OP.

Вероятно, не стоит помещать это в корневой crontab на первое место. Вы пробовали поместить его в свой пользовательский crontab?

4
ответ дан 24 May 2014 в 17:27

Я думаю, что это проблема:

* * * * * env DISPLAY =: 0.0 / usr / bin / gnome-Calculator

Настройка на это похоже, что это работает:

* * * * * env DISPLAY=:0 /usr/bin/gnome-calculator

env DISPLAY =: 0 сообщает ему экспортировать на дисплей : 0 - вы можете найти свой в TTY в выводе w

Затем запустите crontab -e от имени обычного пользователя, где вы хотите, чтобы приложение запускалось, и вставьте эту строку:

* * * * * env DISPLAY=:0 /usr/bin/gnome-calculator

Если вы не хотите в crontab -e , чтобы отредактировать его, используя vim , запустите это заранее, чтобы использовать вместо nano :

export EDITOR=nano ; export VISUAL=nano

Обратите внимание, что звездочки означают, что он будет запускаться каждую минуту, каждую час и каждый день, поэтому он, вероятно, станет ОЧЕНЬ раздражающим, если вы его не удалите.

Если это все еще не работает, попробуйте выполнить эту команду:

sudo bash -c "echo $(whoami) > /etc/cron.allow"

И, если вы не хотите возиться с текстовыми файлами, вы можете вместо этого использовать gnome-schedule .

Ссылки:

5
ответ дан 24 May 2014 в 17:27

Cron, запущенный под root, не имеет доступа к отображению, если текущий пользователь x не является root.

Нам просто нужно добавить пользователя root к x, вы можете сделать это во время входа в систему с помощью скрипта запуска

xhost local:root

В целях тестирования мы можем просто запустить чем команду под текущим пользователем и перезапустить задание cron root

3
ответ дан 18 April 2019 в 20:21

Для работы в Ubuntu 18 вам необходимо:

-подключить терминал в качестве пользователя с помощью w (например, «: 1 ] ")

-then * * * * * env DISPLAY =: 1 / usr / bin / gnome-Calculator

1
ответ дан 23 November 2019 в 07:49

Так как этому сайту требуется 50 репутации для добавления комментариев, я добавлю ответ в ответ на ответ @intika .

Если вы хотите запустить команду из корневой таблицы cron, вы можете запустить команду как основной пользователь без полномочий root с:

* * * * * env DISPLAY=:0 sudo -i su USERNAME -c "/usr/bin/gnome-calculator"
0
ответ дан 23 November 2019 в 07:49

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

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