从Java运行程序(由cron触发)

时间:2015-03-17 15:41:00

标签: java process cron

我有一个启动java程序的cron作业。 这个java程序启动了一些其他程序(例如“youtube-dl”)。 java程序使用Process,Runtime等...(使用多个网站上的代码) 它还有一个process.waitFor(); 但java程序存在而没有等待。 java程序退出并使用它也会杀死youtube-dl进程(子进程)。

从命令行(而不是从cron)运行时相同的java程序运行正常(我能够看到youtube-dl作为进程列表的一部分)。 在这里粘贴代码时遇到问题(由于格式化) 在此处粘贴代码http://pastebin.com/RUgubDZ9

这是日志...... Tue Mar 17 19:01:06 UTC 2015 : youtube-dl is not running. launching now... Tue Mar 17 19:02:06 UTC 2015 : youtube-dl is not running. launching now... Tue Mar 17 19:04:58 UTC 2015 : youtube-dl is not running. launching now...

1 个答案:

答案 0 :(得分:0)

cron脚本没有为youtube-dl执行(但是对于涉及wget的相同脚本工作正常)。 原因可能是因为wget已经在raspbian中可用了,youtube-dl是由我手动安装的。

即使wget和youtube-dl在用户启动的任何脚本中都能正常工作,但是当由cron触发时,youtube-dl脚本会失败。

我改变了youtube-dl的调用方式。
早些时候是

youtube-dl https://www.youtube.com/watch?v=RhIfQ-IhhPM

现在将其修改为

python / usr / local / bin / youtube-dl https://www.youtube.com/watch?v=RhIfQ-IhhPM

这完全适用于cron。

现在,我没有必要从Java启动整个事情。 Shell脚本会做......