Я пытаюсь выполнить указанную команду в нужное время. Я нашел at для этого, и это , кажется, работает нормально , если я бегу:

echo "ls -al / > /home/florin/test.txt" | at 4:21am

Но я хочу запустить другую вещь: /usr/bin/firefox -new-tab http://google.ro

Я попытался адаптировать первую строку с моим действием (при запуске в терминале открывается новая вкладка Firefox с http://google.ro, поэтому команда верна), но с at она не работает:

echo "firefox -new-tab http://google.ro" | at 4:23am

Задание вроде бы запланировано, но не запускается. При выполнении предыдущей строки я получаю ответ по умолчанию из at

warning: commands will be executed using /bin/sh

Должна ли моя команда Firefox запускаться по-другому в sh? Есть ли способ выполнить мои действия с помощью at или каким-либо другим способом?

1 ответ1

1

Проблема в том, что Firefox - это ориентированная на дисплей программа, требующая доступа к вашему дисплею X11. Эта информация обычно доступна в переменной окружения DISPLAY, но когда вы запускаете FF из at, это не так. Таким образом, FF не знает, куда поместить графический вывод, и, следовательно, немедленно выходит.

Если вы абсолютно уверены в том, что знаете, где будет находиться ваш дисплей (и это не каламбур, у вас может быть запущено любое количество серверов X11), вы можете просто включить DISPLAY с соответствующим содержимым в начале команды, которую вы кормление в. Например, DISPLAY=0:0 firefox -new-tab http://google.ro откроет новую вкладку запуска процесса FF на первом локальном дисплее X11 на вашем компьютере.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .