这是我的Python脚本(main.py):
#! /usr/bin/env python
import time
# ..... some file imports from the same folder .....
try:
# .... Some setup code
while True:
if turnOffRequestHandler.turnOffIsRequested():
break;
time.sleep(1)
except BaseException as e:
pass
finally:
# ..... Some code to dispose resources
我尝试在每次启动时调用它的方法是先编辑rc.local使其与此类似:
#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
printf "My IP address is %s\n" "$_IP"
fi
python3 /home/pi/Desktop/ProjectFolder/sample/main.py &
exit 0
,然后通过导航到包含目录并执行以下命令来使我的python脚本可执行:
chmod 755 main.py
然后,我希望系统重新启动后才能运行我的脚本。我不知道它是否运行。我可以告诉我的是,我 t应该呼叫了一些网络终结点。我现在想知道它是否真的执行了,但是wifi尚未连接。
我该如何诊断?因为,当我尝试手动执行(在系统启动并连接了Wifi之后)时,像这样:
pi@raspberrypi:~ $ /etc/rc.local
它正在启动,一切都按预期进行。
编辑:是否有可能与以下事实有关:我尝试执行的脚本在其中引用了位于同一文件夹中的文件(与/ etc /..)?
答案 0 :(得分:0)
我会尝试使用带有'echo“ something” >> to_file'的简单bash脚本。
答案 1 :(得分:0)
您可以在使用脚本时将输出(如打印“东西”)重定向到文件。 像这样更改脚本:
python3 /home/pi/Desktop/ProjectFolder/sample/main.py &> logfile.txt
,然后在您的文件中使用普通打印来在文件中打印1个问题。 您必须在代码运行时刷新输出,才能查看输出文件:
import sys
sys.stdout.flush()
修改
如果您使用的是python 3.3或更高版本,则有另一种方法-print具有用于刷新输出的参数。