2021-11-28

crontab定時播放音樂

最近做了一個Internet Radio, 收集了一百多個有興趣的網路電台,然後想用定時
機制來播放,當然"sleep"是一個立即可用的工具,但是要去算「睡幾分鐘」就不方便
,這時想到Linux環境下的crontab是個好用的工具,可以自由設定月、日、星期、日
、分來做一些原本要手工啟動的工作。

它的基本語法就是「分 時 日 月 星 程式(參數)」

但是遇到的問題是,設定好「程式+參數」之後,時間到了確實有進行動作,但是我要的
是播放音樂叫我起床卻沒有聲音!

為了證實程式有做動作,設了一個參考檔,只有程式有動起來,就會產生參考檔。

然而在時間到的時候,參考檔有產出,喇叭卻沒發出聲音!?
一開始以為是tty的問題,試來試去也是沒聲音,最後終於找到原因,就是環境參數
XDG_RUNTIME_DIR的問題。

這個參數雖然以 X開頭,但實際上跟Xorg無關,在純console mode也需要設定它。

因此把執行程式改成獨立的script,然後在script裡面設定環境參數,如下:

export XDG_RUNTIME_DIR="/run/user/NNNN"
/PATH/music_player URL
這裡的 /run/user/NNNN 要看你電腦裡的實際字串,它可能是1000或999
這樣就能借由crontab來定時播放音樂了。

沒有留言: