Я был бы признателен за совет о том, почему сценарий работает нормально, когда сценарий запускается из командной строки терминала, но некоторые команды в сценарии, по-видимому, не запускаются, когда сценарий запланирован с помощью команды "at" (и совет о том, как заставить его работать правильно по расписанию). Скрипт (названный «open_browser.sh») предназначен для открытия браузера в запланированное время следующим образом:
#!bin/bash
#script filename: "~/Desktop/open_browser.sh"
#write to log file to verify script is running
echo "Starting open_browser.sh"
#set URL for browser
STRING = "https://news.google.com/"
#open browser - try with Firefox and Chromium
#firefox $STRING
chromium-browser $STRING
#write to log file to verify script finishes
echo "Ending open_browser.sh"
#end of script
Когда я запускаю скрипт из командной строки терминала, используя «./~/Desktop/open_browser.sh> log_file» , сценарий открывает выбранный браузер в видимом (переднем) окне и записывает операторы эха в файл журнала. Когда я планирую сценарий с помощью команды «at», он открывает файл журнала и записывает все эхо-сообщения, но не открывает никаких видимых окон браузера. Я запланировал сценарий, используя "at" следующим образом:
$ at now + 1 min
at> ./~/Desktop/open_browser.sh > log_file
Я был бы благодарен за любое понимание того, почему сценарий открывает браузер при выполнении из командной строки, но, по-видимому, не при запланированном использовании команды "at".
Для получения дополнительной информации, в моей установке по умолчанию используется файл запрета "at" ( /etc/at.deny
). Я не видел ни одного файла at.allow.
Заранее спасибо.
Ответ Джоса был правильным решением. "Ваша команда chromium-browser работает в оболочке, но требует графического отображения. Вы не указываете один, тогда как у вас может быть много. Отображение по умолчанию называется: 0. Вам также необходимо указать полный путь к каждому исполняемому файлу. Попробуйте заменив команду на DISPLAY =: 0 / usr / bin / chromium-browser $ string. "