运行 来自 Java 的程序(由 cron 触发)

Running a program from Java(triggered by cron)

我有一个启动 java 程序的 cron 作业。 此 java 程序会启动其他一些程序(例如 "youtube-dl")。 java 程序使用进程、运行时等...(使用在多个网站上找到的代码) 它还执行 process.waitFor(); 但 java 程序无需等待即可存在。 java 程序退出,同时也终止了 youtube-dl 进程(子进程)。

相同的 java 程序,当 运行 来自命令行(不是来自 cron)时 运行 没问题(我能够将 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...

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

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

我更改了 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 脚本可以...