[英]run script form .bashrc only once
我想在我的覆盆子pi2上啟動時執行python腳本,所以我將它放入.bashrc。 使用crontab啟動腳本不起作用。
但我只想執行一次。 不是每次我進入終端或每次我通過ssh登錄。 我的糟糕嘗試當然不起作用,這顯然是原因。
python_running=false
if [ "$python_running" = false ] ; then
./launcher.sh
$python_running = true
fi
編輯:我的主要問題是python腳本需要互聯網訪問。 必須在執行腳本之前建立連接。 在第一個回答和評論之后,我意識到.bashrc不是在啟動時啟動腳本的好地方。 它適用於自動登錄,但不是一個合適的解決方案。 但是,只運行一次腳本可能是一個合適的解決方案嗎?
.bashrc絕對不是一個合適的地方。 要在啟動時啟動腳本,我找到的最好和最簡單的解決方案是crontab:
sudo crontab -e
然后將以下行添加到文件的末尾:
@reboot sh /home/pi/launcher.sh > /home/pi/logs/cronlog 2>&1
但是要使用crontab,需要將shell腳本更改為等待/輪詢以進行Internet連接:
ROUTER_IP=192.168.0.1
while ( ! ping -c1 $ROUTER_IP) do
echo "network is not up yet"
sleep 3
done
echo "network is up now"
python3 myScript.py &
輪詢可能不是最佳選擇,但每3秒創建一個睡眠過程並沒有錯。
好的..所以我們需要澄清一些術語..
pi(或任何unix系統)並沒有真正區分“控制台”登錄或ssh(遠程)登錄,無論如何它都會讓你進入shell。
但是,如果你想在啟動時啟動一些東西(這是我想你想要的),那么看看/etc/rc.d - 看看這里 - http://raspberrywebserver.com/serveradmin/run-a-script -on-start-up.html - 但是如果該鏈接發生,請在/etc/rc.local中輸入命令
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.