我正在使用rc.local
中的命令开始在Raspberry Pi 2(Raspbian)上运行我的服务,如下所示:
python3.4 /home/pi/SwitchService/ServiceStart.py >/home/pi/SwitchService/log &
python3.4 /home/pi/test.py >/home/pi/log2 &
由于某些原因,虽然脚本打印到stdout,但我在服务的日志文件中看不到任何文本。
这两个脚本如下所示:
test.py
print("Test")
ServiceStart.py
from Server import Server
print("Test")
if __name__ == "__main__":
server = Server()
因为我无法让bash解决方案工作,所以我尝试了this other solution这是否对我有用。它的行为与基于bash的方法完全相同。因此,虽然创建了空文件,但我的服务不会对日志文件写任何内容。
答案 0 :(得分:2)
首先,确保您的脚本实际上正在运行。许多调度程序和启动例程没有设置PATH
,因此可能找不到python3.4
。尝试修改命令以包含完整路径(例如/full/path/python3.4
)。
其次,不建议在rc.local
中包含长时间运行的脚本而不在后台运行它们(the documentation甚至声明这一点)。 Raspberry Pi在继续启动之前等待命令完成,所以如果它永远运行,你的Raspberry Pi可能永远不会完成启动。
最后,假设已经解决了前两个问题,请确保您的程序没有过于积极地缓冲输出。您可以尝试flushing stdout查看是否有帮助。