raspbian:在启动故障排除时获取脚本

时间:2017-07-06 17:53:44

标签: python raspberry-pi raspbian

所以我试图在启动时运行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

如何摆脱这两个错误并确保脚本在启动时运行?

2 个答案:

答案 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脚本。