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, но это немного сложнее, см. Этот вопрос.

Другие вопросы по тегам