【发布时间】:2016-06-20 00:20:06
【问题描述】:
我正在使用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 &
由于某种原因,尽管脚本打印到标准输出,但我在服务的日志文件中看不到任何文本。
这两个脚本如下所示:
test.py
print("Test")
ServiceStart.py
from Server import Server
print("Test")
if __name__ == "__main__":
server = Server()
因为我无法让 bash 解决方案正常工作,所以我尝试了 this other solution 是否适合我。它的行为与基于 bash 的方法完全相同。因此,尽管创建了空文件,但我的服务不会向日志文件写入任何内容。
【问题讨论】:
-
你确定脚本真的在运行吗?启动例程通常不会设置
PATH,因此如果没有完整路径,它可能不知道python3.4的位置。 -
您确定 ServiceStart 正在写入标准输出吗?还是写到stderr?当你不守护它时会发生什么?它打印任何东西吗?到哪个标准文件?标准输出还是标准错误?
-
@Mr.Llama 我可以确认脚本正在运行,因为我可以使用该服务。
-
@threadp 当我从终端调用它时,它工作得很好。当我调用 print() 时,我认为它使用标准输出,不是吗?
-
@ThunderStorm 您是否还可以重定向 stderr 以进行调试?
python3.4 /home/pi/SwitchService/ServiceStart.py >& /home/pi/SwitchService/log &(注意>&而不是>)
标签: bash python-3.x stdout