Raspberry Pi上将Python脚本作为服务使用的问题

时间:2018-06-20 09:16:15

标签: python raspberry-pi

设置详细信息: RPI版本:Raspberry Pi 2 Model BV1.1 Python版本:2.7

我创建了一个小程序来控制水培室内的风扇和灯光。我正在使用带外部电源的8通道继电器板。如果我使用以下命令运行脚本,一切都会正常 ‘sudo python /home/pi/lionsfort/hydroponic.py”。要停止执行,请键入CTRL + C,然后在继电器断电的情况下正确停止脚本。

由于我希望脚本以Raspberry pi开头,因此我正在运行“ hydroponic.py”脚本作为服务。但是使用脚本作为服务运行时会产生以下问题 1.仅控制台日志被写入,文件日志为空。 2.脚本可以正常启动,并且继电器可以正常运行,但是当我停止服务(sudo systemctl stop hydroponic.service)时,继电器将无法断电。 3.脚本从启动树莓派开始,但也从每个新的PUTTY会话开始。无论PUTTY会话如何,都应只运行一个脚本实例。

注意:如果使用“ sudo python /home/pi/lionsfort/hydroponic.py”运行脚本,我不会遇到上述任何问题!

以下是在引导时将脚本作为服务运行的过程:(ref http://www.diegoacuna.me/how-to-run-a-script-as-a-service-in-raspberry-pi-raspbian-jessie/

1.  cd /lib/systemd/system/
2.  sudo nano hydroponic.service
3.  hydroponic.service content

    [Unit]
    Description=Hydroponic
    After=multi-user.target

    [Service]
    Type=simple
    ExecStart=/usr/bin/python /home/pi/lionsfort/hydroponic.py
    Restart=on-abort

    [Install]
    WantedBy=multi-user.target

4.  To activate it, I ran below commands
a.  sudo chmod 644 /lib/systemd/system/ hydroponic.service
b.  chmod +x /home/pi/lionsfort/hydroponic.py
c.  sudo systemctl daemon-reload
d.  sudo systemctl enable hydroponic.service
e.  sudo systemctl start hydroponic.service

logging.json

Satish Gunjal

0 个答案:

没有答案