我曾经在Ubuntu 18.04.4 LTS上的服务器上使用AWS EC2实例来启动Python3工作流,这些工作流可以进行测试或在crontab中进行调度。
来自github存储库的脚本是使用Python 3.6.8虚拟环境启动的。
自从几周以来,python的输出经常被卡住。如果我使用远程ssh连接运行实时脚本,则不会发生任何事情。我必须关闭终端窗口(我正在使用Windows WSL 1),再次打开它,登录并使用virtual env和python -v选项启动脚本以取消阻止脚本输出。
我的crontabs也有同样的问题。重定向到日志文件的python输出不会出现。我的日志文件为空。
我已经检查了cron.log,没有任何用处。 我还检查了syslog,也没有检查。
我在Mac上打开远程ssh连接时遇到同样的问题。 VScode实时远程ssh也会发生这种情况。
我认为这确实是服务器端的问题,但我不在哪里搜索该问题。
您有线索吗?
编辑
对于没有输出的crontab:
10 10 * * * /home/ubuntu/venv/bin/python3 /home/ubuntu/repo/script.py > /home/ubuntu/repo/logs/log_script_`date "+\%Y.\%m.\%d_\%H:\%S"`.log
如果我在Python中添加-v选项,甚至在-m trace --trace中添加,输出将返回,但仅输出python print()函数,而不是我应该具有的所有冗长性。
一旦使用-v(至少一个exec)将crontab解除阻止,我可以将其删除,并且即使没有-v,输出也会返回到日志文件中。
编辑2
我在笔记本电脑上开发脚本,然后使用scp将其上传到远程服务器。我注意到脚本通过scp修改后永远挂出。