Настройка будильника в Linux

Самый простой способ создать в Linux будильник это использовать crontab

Для этого нужно от имени пользователя составить задание на включение консольного проигрывателя mp3 в заданное время. При этом можно не просто включить проигрывает, а запустить сценарий который будет запускать проигрыватель с различными опциями, а затем, спустя, например, 5 минут проигрывания выключать его. У меня этот сценарий выглядит вот так:

#!/bin/bash
if [ -f /tmp/stop-play ]; then
    echo запуск заблокирован /tmp/stop-play
    exit
fi
DISPLAY=:0.0 mpg321 -z --list all.m3u & pid=$!
sleep 160
kill $pid

Сценарий примечателен тем, что предусматривает следующие вещи:

  • если существует файл /tmp/stop-play то проигрываетель не будет запущен. это необходимо для того, чтобы можно было отключать запуск будильника, например, у вас завтра отгул и нет нужды вставать в 6 часов, по этому нужно сделать echo > /tmp/stop-play и можно спать спокойно
  • опция DISPLAY=:0.0 необходима для того, чтобы задание запущенное в терминальной сессии получило доступ к текущей сессии X и аудио потокам, иначе звука не будет
  • конструкция pid=$! sleep 160 kill $pid работает как отложенное выключение процесса, в переменную pid заносится PID запустившегося проигрывателя, затем следует пауза в 160 секунд, а затем процесс выключается(включается тишина)
  • разумеется необходимо установить сам проигрыватель с помощь команды
    sudo aptitude install mpg321
  • список песен для будильника берётся случайным образом из файла all.m3u, который можно сгенерировать с помощью команды
    find /home/`whoami`/ -name \*.mp3 -type f > all.m3u

для создания такого задания в crontab необходимо открыть файл задания

sudo gedit /var/spool/cron/crontabs/`whoami`

и добавить строчку с указанием пути до сценария запуска прогрывателя

0 6 * * * /home/home/ffsdmad/bin/play_random.sh   # запуск в 6:00
15 6 * * * /home/home/ffsdmad/bin/play_random.sh # запуск в 6:15
30 6 * * * /home/home/ffsdmad/bin/play_random.sh # запуск в 6:30

 

Об авторе
Илья Илья

меня можно найти тут