簡體   English   中英

只運行腳本表單.bashrc一次

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM