我的python子进程调用在crontab中不起作用为什么?

kxeu7u2r  于 2021-05-29  发布在  Hadoop
关注(0)|答案(1)|浏览(354)

我目前的方法是首先删除旧模型,保存新模型,使用shell没有问题,但是使用crontab它不能自动工作。你知道为什么或者如何解决这个问题吗?谢谢你的帮助。
错误是主程序没有等待subprocess.call返回。我认为这就是问题所在,但不确定。
这是我当前的命令:

subprocess.call('dse hadoop fs -rmr /root/recommend_model', shell=True)
hs1rzwqc

hs1rzwqc1#

一个可能的解决方案只是检查它是否正确执行是等待一个returncode。
下面是指向子流程模块的链接:https://docs.python.org/2/library/subprocess.html
您可以等待脚本中的返回代码:

if (subprocess.call(command, args) == 0):
    print("We are proceeding)
else:
    print("Something went wrong executing %s" % command)

另外,根据建议,尝试使用2>&1>mickey.log重定向到脚本执行的日志文件
最后但并非最不重要的是这里提供的一些subprocess/os.system建议:从另一个脚本控制python脚本
python:运行外部程序并直接输出到文件并等待完成
如果这能解决你的问题,请告诉我。

相关问题