所以我试图在启动时运行this python脚本。它应该保持大部分静止,但是当运动传感器被触发时,我希望相机开始记录并且电机要移动。最终,当我无头时,这个过程需要发生,因此在启动时自动启动它是最简单的方法。我已尝试使用this init.d文件使其自动运行,但我收到以下错误消息:
Starting mylauncher
from: can't read /var/mail/gpiozero
from: can't read /var/mail/gpiozero
from: can't read /var/mail/picamera
/home/pi/Detector.py: 4: /home/pi/Detector.py: import: not found
from: can't read /var/mail/time
/home/pi/Detector.py: 7: /home/pi/Detector.py: Syntax error: "(" unexpected
我用谷歌搜索了,人们建议把#!/usr/bin/python
作为第一行,但是当我这样做时,我得到了
File "/etc/init.d/mylauncher", line 18
case "$1" in
^
SyntaxError: invalid syntax
如何摆脱这两个错误并确保脚本在启动时运行?
答案 0 :(得分:0)
您是否在#!/usr/bin/python
脚本中添加了init.d
?它们可能意味着您应该将它添加到python脚本中。
#!/usr/bin/python
告诉shell使用什么来运行脚本,以便在行
# run application you want to start
/home/pi/Detector.py
它将使用python
来执行脚本。
答案 1 :(得分:0)
好的,我明白了。事实证明我的Python代码在启动代码主体之前缺少while True:
,这使得它运行一次而不是多次运行。除此之外,我从init.d shell文件中删除了一些似乎是注释的关键组件,但它们是关于何时启动和停止它的真正基本信息。另外,我必须将#!/usr/bin/python
放在我的Python脚本之前,以便init.d文件知道它是在python中读取它。最后,我使用了python /home/pi/Detector.py
而不是/home/pi/Detector.py
,因为即使我在python脚本中有#!/usr/bin/python
,它也不能使用后者。最后,没有必要守护shell或python脚本。