Linux
在 Linux 啟動結束時啟動命令
我有一個沒有螢幕/鍵盤/滑鼠的覆盆子,除了在啟動時啟動無線電流之外什麼都不做:
mplayer http://95.81.146.2/fip/all/fiphautdebit.mp3
我已將此命令放在
/etc/rc.local
. 不幸的是,有 50% 的時間,播放沒有開始(可能是因為 WIFI 還沒有正確連接?),我必須重新啟動才能開始播放聲音。如何
rc.local
使用 SSH 連接檢查啟動期間發生的情況? 我嘗試了dmesg
,但看不到 的結果mplayer
。 哪個是最合適的腳本來放置這樣的命令? (rc.local
,/etc/profiles
?)
我不會直接從您的啟動執行 mplayer,而是編寫一個腳本並執行它。
你的腳本最終會執行你給出的相同的 mplayer 命令,但在此之前你可以檢查你的 wifi 連接是否正常工作(可能通過 ping 你的路由器),這可以讓你的腳本控制。它可以等到連接建立,然後啟動 mplayer。
如果您將啟動腳本放在 rc.local 之類的文件中,那麼它將在啟動時啟動一次。如果您從您的個人資料啟動它,那麼它將在您登錄時啟動。
這是一個範例腳本,它在啟動 mplayer 之前等待它成功 ping 一個 IP 地址。
#!/bin/bash RouterIP="128.0.0.1" TimeOut=2 WaitTime=8 echo "Waiting for network connection" while ! ping -q -c 1 -w $TimeOut $RouterIP > /dev/null do echo Timeout, waiting $WaitTime seconds sleep $WaitTime echo "Waiting for network connection" done mplayer blah blah
您可以將 ip 地址更改為您的路由器內部埠並更正 mplayer 行。
將其命名為 startRadio 並使其可執行,然後對其進行測試。
`./startRadio
將它添加到您想要的任何啟動腳本,但將 stdout 和 stderr 重定向到 /dev/null 並將其作為後台程序啟動。
例如。
/path/to/your/script/startRadio >/dev/null 2>&1 &