Неправильно настроить отображение при запуске корневого crontab-задания с использованием GUI

При запуске сценария ниже из моего локального пользователя crontab, с sudo до /usr/bin/FreeFileSync (строка последнего сценария), небольшое окно прогресса открывается в моем графическом интерфейсе, и все идет хорошо. Единственное, что я должен указать на мой sudo passwd, который делает его интерактивным и несколько неуклюжим.

Для запуска FFS необходимы корневые привилегии, в противном случае он жалуется на отсутствие прав на доступ к некоторым каталогам и резервным копиям файлов.

  #!/bin/bash
  # define default display and pass it on to any child process
  # from within the running shell
  DISPLAY=:0.0
  export DISPLAY

  /usr/bin/FreeFileSync /home/user/bu-1.ffs_batch 2> \ 
     /home/user/bu-1.ffs_log 

Когда я вызываю тот же скрипт из мой корневой crontab с sudo crontab -e, FreeFileSync никогда не запускается из-за следующей ошибки:

$ cat /home/user/bu-1.ffs_log
16:35:01: Error: Unable to initialize GTK+, is DISPLAY set properly?

Как видно, у меня есть export DISPLAY=:0.0 внутри скрипта, а мой корневой файл crontab оборудовано:

  $ sudo crontab -e | head -4
  [sudo] password for user:

  1 SHELL=/bin/bash
  2 PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
  3 HOME=/
  4 MAILTO=root

Может ли кто-нибудь помочь устранить неисправность?

РЕДАКТИРОВАТЬ: Может ли быть запущено это из корневого корневого корня, потому что пользователь root не работает как открытый сеанс и, следовательно, не выводит stdout? Могу ли я обойти эту проблему, попросив корень отобразиться на stdout сессии текущего пользователя? Кажется, стоит сделать, если выполнимо; если да, то как это сделать?

1
задан 7 August 2015 в 15:01

0 ответов

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

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