Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: cron и графика  (Прочитано 610 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Сперанский

  • Автор темы
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4055
  • Dictum ac factum
    • Просмотр профиля
cron и графика
« : 05 Июля 2012, 15:05:40 »
Всем известно, что для того, что бы задания cron могли обращаться к графике, необходимо в задании указать номер дисплея, на который нужно обращаться DISPLAY=:0Вопрос следующий: как указать cron чтобы он использовал дисплей, на котором залогинен user1, а не тупо 0?
Проблему можно воспроизвести залогинившись в user2, переключиться в user1 и cron, естественно, не отображает графику.

Оффлайн Artif

  • Участник
  • *
  • Сообщений: 207
    • Просмотр профиля
Re: cron и графика
« Ответ #1 : 05 Июля 2012, 15:33:41 »
А если указывать нужный дисплей, то cron правильно отработает?

while read uName arg1 arg2 date time display other
do
   display=${display/#\(/}
   display=${display/%\)/}
   echo "${display}, ${DISPLAY}"
done <<< "$( who -T | grep ${USER} )"

Оффлайн Сперанский

  • Автор темы
  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 4055
  • Dictum ac factum
    • Просмотр профиля
Re: cron и графика
« Ответ #2 : 05 Июля 2012, 16:45:29 »
А если указывать нужный дисплей, то cron правильно отработает?
Да.
while read uName arg1 arg2 date time display other
do
   display=${display/#\(/}
   display=${display/%\)/}
   echo "${display}, ${DISPLAY}"
done <<< "$( who -T | grep ${USER} )"
Не понял

Оффлайн Artif

  • Участник
  • *
  • Сообщений: 207
    • Просмотр профиля
Re: cron и графика
« Ответ #3 : 05 Июля 2012, 17:25:54 »
Можно по Cron запускать обёртку, определяющую номер дисплея, из обёртки стартовать всё остальное для нужного дисплея. Этот код - идея ядра такой обёртки. В Cron есть редуцированная поддержка shell скриптования прямо в его файлах, но она небогата, и скорее всего нужна обёртка.

Есть засада. who для пользователей вошедших с локальной, аппаратной консоли (клавиатуры), не даёт "соседский" номер дисплея. Для SSH, VNC клиентов номер есть. С чего бы это пробовал поискать, сходу не находится. Может быть в природе этого есть ответ на главный вопрос. Может нет.

Но, опять же, можно фиксировать факты входа и выхода и вести учёт номерам дисплеев.
« Последнее редактирование: 05 Июля 2012, 17:28:36 от Artif »

 

Страница сгенерирована за 0.044 секунд. Запросов: 25.