The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Организация регулярно выскакивающих напоминаний в 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 часов.
 
08.06.2010 , Автор: Сергей Пушкин
Ключи: dialog, gtp, crontab, zenity / Лицензия: CC-BY
Раздел:    Корень / Пользователю / Файлы, копирование, архивация

Обсуждение [ RSS ]
  • 1.1, zomg (?), 16:30, 08/06/2010 [ответить]  
  • +/
    Do not grep ps output!

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

     
     
  • 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 [^] [^^] [^^^] [ответить]  
  • +/
    видимо чтоб не спамить самого себя, если первое сообщение не закрыто, следующее не появится
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру