export DISPLAY =: 0.0 xhost localuser / usr / bin / firefox
Просто взглянув на приведенную выше команду cron, я могу понять, почему это не сработает. Команда
export
используется так:export name[=word]...
В оболочках POSIX остальные слова, следующие за
export DISPLAY =: 0.0
, будут рассматриваться как другие переменные оболочки, которые следует экспортировать в окружение - не команды, которые будут выполняться. POSIX (выпуск 7, издание 2018 г.) также указывает, что имя должно бытьсловом, состоящим исключительно из знаков подчеркивания, цифр и букв из переносимого набора символов .
Это означает, что имена переменных оболочки не могут содержать такие символы, как
/
, поэтому попытка включить/ usr / bin / firefox
в список имен переменных для экспорта вызовет ошибку ошибка с сообщением, напримернедопустимый идентификатор
илинеправильное имя переменной
.Также неправильно используется команда
xhost
. Запуститеxhost
отдельно, чтобы узнать, нужно ли вам добавить свою учетную запись в качестве разрешенного пользователя. Это должно быть выполнено только один раз и не должно планироваться cron.Если нет какого-либо другого механизма, препятствующего подключению программ к серверу отображения X, приведенные выше строки можно просто заменить на:
DISPLAY=:0.0 * * * * * /usr/bin/firefox
Это должно запускать новое окно Firefox каждую минуту. Также нет необходимости указывать переменную среды
SHELL
, а поскольку вы указываете полный путь к исполняемому файлуfirefox
, нет необходимости устанавливать] PATH
либо переменная.См. Также: Спецификация POSIX для
экспорта