【发布时间】:2018-06-03 08:51:51
【问题描述】:
我正在尝试通过 cron 作业定期运行 python 脚本。 python 脚本是 Twitch 的聊天机器人,它每分钟检查一次以查看流媒体是否上线或关闭其流,并根据需要启动机器人或断开连接。
该脚本在 bash 中运行,当我使用 sh 运行它时。它每分钟都正确启动,但每个机器人在 2 到 30 秒之间死亡(比预期的时间短得多)。机器人在不同的时间死亡,所以起初我认为它们可能遇到错误,所以我将输出重定向到一个文本文件,但没有出现任何意外。
我的 cron 工作:
* * * * * cd [path to script] && python3 Chatbot.py &
如果需要,我可以发布有关脚本的更多信息,但由于它在 shell 和 bash 中按预期工作,我认为错误不存在。我的 crontab 文件末尾有一个空行,并且 cron 服务正在运行。
编辑:解决了!我走到了日志的末尾,在 Twitch 视频中搜索了最后一条成功登录之后的消息,结果发现它是一个表情符号。我的 python 脚本处理了这个,但我猜 cron 改变了编码?我将以下内容添加到我的 crontab 文件中:
LANG=en_US.UTF-8
这似乎解决了我的问题——它已经运行了几分钟,没有任何问题。
【问题讨论】:
-
它可能会被提前杀死,也许是因为下一个 cron 间隔运行,也许尝试将间隔调整更长。