首页 > 解决方案 > Python 脚本不再作为 cron 作业运行

问题描述

我为我的温室设置了一个水泵,并使用树莓派作为水泵计时器。它已经工作了数周,然后我运行了实际激活泵的脚本,但它不会关闭。现在我设置来运行脚本的 cronjob 也不起作用。

所以基本上,我有一个脚本来运行水泵

#!/usr/bin/env python3
import RPi.GPIO as gpio
import time
import datetime

channel = 21

gpio.setmode(gpio.BCM)
gpio.setup(channel, gpio.OUT)


def pump_on(pin):
    gpio.output(pin, gpio.HIGH)

def pump_off(pin):
    gpio.output(pin, gpio.LOW)


#setting up cronjob to start at startup

if __name__ == '__main__':
    try:
        pump_on(channel)
        datetime = datetime.datetime.now()
        print("...Activating Sprinkler...: ", str(datetime))
        time.sleep(75)
        print("...Deactivating Sprinkler...")
        pump_off(channel)
        gpio.cleanup()
    except KeyboardInterrupt:
        gpio.cleanup()
        print("Interrupted!")
        pass

它使用 crontab -e 通过这个 cronjob 运行

30 15 * * * /home/pi/Documents/water_pump.py >> ~/cron.log 2>&1

我有另一个脚本检查 pi 是否每小时打开一次(它是太阳能供电的,所以我想看看电池是否有关闭时间)

0 * * * * /home/pi/Documents/time_log.py >> ~/time.log 2>&1

这个仍然可以正常工作。

但是几天前我跑了./water_pump.py

而且它在 75 秒后没有关闭,我需要手动关闭系统,现在为此而使用的 cronjob 不再起作用。

任何建议将不胜感激。

编辑:grep CRON /var/log/syslog 输出:https ://imgur.com/a/jfC9eRw

太长了,无法嵌入图片

标签: cronraspberry-piraspbian

解决方案


我从 cron 作业中删除了该行,然后将其粘贴到末尾,它确实有效,猜猜这就是修复它的方法。


推荐阅读