如何在启动时执行多个循环脚本?

时间:2015-05-22 14:03:03

标签: python-2.7 raspberry-pi

我有一些Python脚本,所有这些脚本都涉及while True:和一个等待计时器,因此它们以不同的间隔运行。他们执行诸如监视串行端口并在远程服务器上查找我的代码的新版本之类的操作。我没有使用过cron,因为有些需要补偿(例如在一分钟后运行十秒),我想保持简单。

使用rc.local,我在启动时运行hook.py。我可以在hook.py中同时且连续地运行a.pyb.pyc.py我尝试subprocess(使用shell = True),但我不确定下一行/下一个子进程命令是否会执行,直到第一个完成 - 这将永远不会发生。此外,它有一些奇怪的行为,我正在努力调试(如果我直接运行脚本,我可以使用它们的绝对路径循环文件;当子进程运行它们时,它无法找到文件)。

有什么建议吗?只想要一些简单的东西,可以同时执行几个新的python脚本。平台是Raspberry Pi。

或者:如果有代码,我可以放入rc.local,它将为指定目录中的所有.py文件生成一个新的python进程,这也可以。

1 个答案:

答案 0 :(得分:1)

这听起来更适合通过cron而不是无限循环产生。

但是如果你想继续在rc.local中运行它们,那就把&在你的命令结束时:

/usr/bin/python /home/you/command.py &

这会在后台运行命令。

如果你想在给定目录中运行所有Python文件,我会编写一个bash脚本,如:

for file in /home/you/*.py
do
    if [ "$?" == "0" ]
    then
        /usr/bin/python "$file" &
    fi
done

我们需要有关您的路径问题的更多信息,以告诉您更多信息。