从rc.local自动运行在分叉(&)时不起作用

时间:2019-07-03 07:59:54

标签: python raspberry-pi

我在尝试让我的python脚本在启动时运行时遇到很多问题。我实质上已将其范围缩小到分叉问题。

我在RPi3上运行。

在rc.local中,如果我有:

python /home/pi/script.py

它似乎运行了,但是我添加了

python /home/pi/script.py &

我得到零结果。 如果我在引导后手动运行rc.local,则分叉似乎可以正常工作。 我还尝试将rc.local指向/ home / pi中的.sh文件,结果完全相同。基本的echo命令甚至会发生这种情况:

echo "Hello world" > /tmp/log.txt

vs

echo "Hello world" > /tmp/log/txt &

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

我猜想这与以下事实有关:rc.local脚本的所有子进程在到达脚本末尾时都会被杀死,如果仅在文件正在将python脚本作为后台进程运行。

在执行任何有用的操作之前,叉子将被杀死。

如果希望进程在rc.local结束后继续运行,则应将其作为守护程序运行。

有关如何执行此操作的一些示例可以在以下问题中找到:Run bash script as daemon