Самый простой способ создать в Linux будильник это использовать crontab
Для этого нужно от имени пользователя составить задание на включение консольного проигрывателя mp3 в заданное время. При этом можно не просто включить проигрывает, а запустить сценарий который будет запускать проигрыватель с различными опциями, а затем, спустя, например, 5 минут проигрывания выключать его. У меня этот сценарий выглядит вот так:
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 необходимо открыть файл задания
и добавить строчку с указанием пути до сценария запуска прогрывателя
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