Cron не может запустить gnome-терминал
Я установил следующий cron в моей локальной машине.
* * * * * /bin/bash -c /home/JSX/Stuff/J/login-check/open-console.sh
Содержание open-console.sh
является следующим:-
#! /bin/sh
gnome-terminal --full-screen --hide-menubar -e /home/JSX/Stuff/J/login-check/handle-user.sh
Предполагается открыть еще один сценарий sh в терминале. Но ничего не происходит. Есть ли что-нибудь еще, что мне нужно сделать? Например, перезапуск службы или что-то для запуска задания cron?
*** Абсолютные пути, указанные в файлах, являются правильными. Когда я ввел команду /bin/bash -c /home/JSX/Stuff/J/login-check/open-console.sh
прямо в терминале все заработало.
1 ответ
Cron не знает, где находится текущий дисплей (с его точки зрения, может быть много запущенных), поэтому он не может - легко - запустить графический терминал. Если вы являетесь единственным пользователем машины только с одним сеансом X, вы можете попытаться определить переменную DISPLAY
export DISPLAY=:0.0
в open-console.sh
, но я не уверен, будет ли это работать.
Основная цель cron- запускать неинтерактивные сервисы, которые работают в фоновом режиме в определенные моменты времени. Другие задачи должны выполняться с помощью dbus и ConsoleKit, но это немного сложнее, см. Этот вопрос.