2016-12-28 29 views
0

我需要运行一个jar文件,我没有权限通过python脚本进行修改。为什么python脚本在通过cron作业执行之前从java获得结果之前完成?

如果我运行python脚本手动将其工作正常,但如果我通过一个cron作业运行它,它结束而不执行jar文件 我用下面的Python代码运行java的jar:

os.system('java -jar jar_file.jar > output.txt') 

我也试过:

os.system('/usr/local/jdk/bin/java -jar jar_file.jar > output.txt') 

之后,我需要使用相同的python脚本来读取output.txt文件中的数据。

在crontab我有任务设置为:

*/30 * * * * (cd /path/to/python/script && exec /usr/bin/python script.py) 

如果我手动运行该脚本,我得到的输出文件中的数据,但如果我通过cron作业运行该脚本,我得到一个空output.txt文件。

有什么建议吗?

+1

克朗职位有不同的环境。一些PATH等可能会丢失。只是猜测,但这应该是首先检查。 – VPfB

+0

cronjob可能会以不同用户的身份运行。顺便说一句:即使对'.jar'文件使用完整路径。 – furas

+0

@ VPfB它确实与环境变量有关。我得到了修正,然后来到这里发布答案。如果你的评论是一个答案,我会选择它是正确的答案。如果你愿意,随意发布它作为答案。 – XO39

回答

0

该问题与cron作业环境有关,在发布问题后,我做了一些测试并检查了日志,发现它并没有加载所有需要的路径变量,只要我加载了所有需要的变量, 有效。

相关问题