Организация регулярно выскакивающих напоминаний в Debian |
[исправить] |
Допустим, необходимо чтобы в рабочее время каждый час на экран выскакивало
окошко с напоминанием сделать разминку.
Как это сделать?
1. Убеждаемся что установлен пакет zenity, отображающий различные сообщения
через GTK+ (он входит в зависимости gnome-desktop-environment, но все же ...)
sudo aptitude 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 часов.
|
|
|
|
Раздел: Корень / Пользователю / Файлы, копирование, архивация |
|
2.2, tupka (?), 20:49, 08/06/2010 [^] [^^] [^^^] [ответить]
| +/– |
Вы неправы
В данном случае, при проверке только по имени команды (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
| |
|
1.3, Андрей (??), 07:23, 09/06/2010 [ответить]
| +/– |
Ещё через libnotify красиво получается, только такое сообщение легче проигнорировать.
| |
1.4, злодейко (?), 11:09, 09/06/2010 [ответить]
| +/– |
Для решения задачи описанной в статье - в Debian и его gnome(ведь gnome стоит раз gdialog используют? 8-)) нужно зайти в настройки клавиатуры и посмотреть на вкладку "перерыв в работе" - для разминки всяко лучше подходит
| |
1.5, charon (ok), 11:33, 09/06/2010 [ответить]
| +/– |
DISPLAY=:0.0 /usr/bin/notify-send -u normal -i evolution "Важное сообщение" "Час прошёл!"
мне такое решение больше нравится.
| |
1.6, ffsdmad (ok), 15:46, 09/06/2010 [ответить]
| +/– |
а это ещё зачем?
ps -A |grep gdialog || env DISPLAY=:0
| |
|
2.7, аноним (?), 03:23, 11/06/2010 [^] [^^] [^^^] [ответить]
| +/– |
видимо чтоб не спамить самого себя, если первое сообщение не закрыто, следующее не появится
| |
|
|