Я пытаюсь использовать Крон для проигрывания файла MP3 в установленное время (Это - более или менее будильник POC). В основном у меня есть мой crontab
файл, настроенный для запущения скрипта удара следующим образом:
* * * * * export DISPLAY=:0 && export XAUTHORITY=/home/username/.Xauthority && home/username/test
Вот файл удара, который, как предполагается, играет звуковой файл; я использую игру от sox
.
#!/bin/bash
PATH=/usr/bin
play /home/username/Media/Music/my_audio.mp3
Если я петляю отдельно, это работает просто великолепно, но ничего не происходит что когда с cron
. Кто-то может дать мне некоторые подсказки относительно того, что я должен зафиксировать? Огромное спасибо!
cron
не bash
(и Ваш bash
, синтаксис является неправильным, также. Читайте man bash
). Считайте man 5 crontab
, и, к achive, что Вы, кажется, хотите:
В Вашем crontab
(crontab -e
)
DISPLAY=:0
XAUTHORITY=/home/username/.Xauthority
* * * * * /home/username/test
, НО! Это не необходимо! play
команда не использует никакой $DISPLAY
или $XAUTHORITY
.
От [1 113]:
SoX is a command-line audio processing tool, particularly suited to making quick, simple edits and to batch processing. If
you need an interactive, graphical audio editor, use audacity(1).
Ваша проблема состоит в том, что cron
s $PATH
не является тем же как Вашей. man 5 crontab
покажет Вам, как установить его, или Вы, culd используют полный путь для [1 117] в Вашем сценарии:
#!/bin/bash
# no need to set $PATH
/usr/bin/play $HOME/Media/Music/my_audio.mp3
можно исследовать различия между [1 118] среда выполнения и среда выполнения GUI путем выполнения (echo "=== set ===";set;echo "===env ==="; env | sort;echo "=== alias ===";alias) >some.file
в обоих (с различными значениями для [1 120]).