
Как мне запустить графическое приложение, например firefox или gnome-calculator, в определенное время. at
не работает для этого; т. е. echo "firefox" | at now
не запускает firefox. Cron может работать, но это создаст повторяющуюся задачу. Есть ли способ настроить такое приложение на запуск с той же функциональностью, что и at, в указанное время или через заданный промежуток времени от текущего момента?
решение1
Kubuntu 22.04 LTS, X11, KDE. Мне нужно только "вручную" сохранить DISPLAY
.
В целом at
сохраняет среду с момента вызова, за исключением нескольких переменных. DISPLAY
является одним из исключений. man 1 at
Подробности см. здесь. Отсутствие переменной — вот почему echo "firefox" | at now
не работает.
Вот как вы можете сохранить DISPLAY
:
echo "DISPLAY='$DISPLAY' firefox" | at now
Команда сломается, если $DISPLAY
расширится до чего-то, что включает '
; но на практике этого не должно быть. Обычно расширенная строка составляет всего :0
около того.
Вы можете запланировать на потом, просто не выходите из своего рабочего стола. Япредполагатьвы можете указать еще не существующий дисплей для firefox
, создать дисплей до того, как придет время, и это будет работать; хотя я не тестировал этот сценарий.