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