URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID3
Нить номер: 67808
[ Назад ]

Исходное сообщение
"Раздел полезных советов: Организация регулярно выскакивающих..."

Отправлено auto_tips , 08-Июн-10 16:30 
Допустим, необходимо чтобы в рабочее время каждый час на экран выскакивало окошко с напоминанием сделать разминку.

Как это сделать?

1. Убеждаемся что установлен пакет zenity, отображающий различные сообщения через GTK+ (он входит в зависимости gnome-desktop-environment, но все же ...)

   sudo aptitute install zenity

2. Добавляем в crontab строчку, вызывающую желаемое напоминание с проверкой на наличие незакрытого предыдущего:

    crontab -e

добавляем:

   0 10-16 * * * ps -A |grep gdialog || env DISPLAY=:0
     LANG=ru_RU.UTF-8 gdialog --title "Напоминание" --infobox "Разминка\!\!\!\n`LANG=ru_RU.UTF-8 date`"


3. Получаем желаемый результат каждую 0 минуту с 10 до 16 часов.


URL:
Обсуждается: http://www.opennet.ru/tips/info/2385.shtml


Содержание

Сообщения в этом обсуждении
"Организация регулярно выскакивающих напоминаний в Debian"
Отправлено zomg , 08-Июн-10 16:30 
Do not grep ps output!

man pgrep
http://mywiki.wooledge.org/ProcessManagement


"Организация регулярно выскакивающих напоминаний в Debian"
Отправлено tupka , 08-Июн-10 20:49 
Вы неправы

В данном случае, при проверке только по имени команды (gdialog) grep по выходу ps -A вполне допустим.
Если же есть желание включить в проверку аргументы командной строки, то выход pgrep все равно придется фильтровать - при запуске из cron он не распознает команду запуска себя в списке процессов.

рабочие примеры для crontab с более точным определением наличия незакрытого предыдущего напоминания:

0 10-16 * * * export LANG=ru_RU.UTF-8; ps -Af | grep -v grep | grep gdialog.*Напоминание.*Разминка || DISPLAY=:0 gdialog --title "Напоминание" --infobox "Разминка\!\!\!\n`date`"

0 10-16 * * * export LANG=ru_RU.UTF-8; pgrep -fl gdialog.*Напоминание.*Разминка | grep -v pgrep || DISPLAY=:0 gdialog --title "Напоминание" --infobox "Разминка\!\!\!\n`date`"

> Do not grep ps output!

Do not use english without need


"Организация регулярно выскакивающих напоминаний в Debian"
Отправлено Андрей , 09-Июн-10 07:23 
Ещё через libnotify красиво получается, только такое сообщение легче проигнорировать.

"Организация регулярно выскакивающих напоминаний в Debian"
Отправлено злодейко , 09-Июн-10 11:09 
Для решения задачи описанной в статье - в Debian и его gnome(ведь gnome стоит раз gdialog используют? 8-)) нужно зайти в настройки клавиатуры и посмотреть на вкладку "перерыв в работе" - для разминки всяко лучше подходит

"Организация регулярно выскакивающих напоминаний в Debian"
Отправлено charon , 09-Июн-10 11:33 
DISPLAY=:0.0 /usr/bin/notify-send -u normal -i evolution "Важное сообщение" "Час прошёл!"
мне такое решение больше нравится.

"Организация регулярно выскакивающих напоминаний в Debian"
Отправлено ffsdmad , 09-Июн-10 15:46 
а это ещё зачем?
ps -A |grep gdialog || env DISPLAY=:0

"Организация регулярно выскакивающих напоминаний в Debian"
Отправлено аноним , 11-Июн-10 03:23 
видимо чтоб не спамить самого себя, если первое сообщение не закрыто, следующее не появится