繁体   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