Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/356.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从Java运行程序(由cron触发)_Java_Process_Cron - Fatal编程技术网

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

从Java运行程序(由cron触发),java,process,cron,Java,Process,Cron,我有一个启动java程序的cron任务。 这个java程序启动其他一些程序(例如“youtube dl”)。 java程序使用进程、运行时等(使用多个网站上的代码) 它还执行一个进程; 但是java程序不需要等待就可以存在。 java程序退出,并随之终止youtube dl进程(子进程) 当从命令行(而不是从cron)运行时,相同的java程序运行良好(我可以将youtube dl作为进程列表的一部分)。 在此处粘贴代码时遇到问题(由于格式问题) 把代码贴在这里 这是日志。。。 2015年3月

我有一个启动java程序的cron任务。 这个java程序启动其他一些程序(例如“youtube dl”)。 java程序使用进程、运行时等(使用多个网站上的代码) 它还执行一个进程; 但是java程序不需要等待就可以存在。 java程序退出,并随之终止youtube dl进程(子进程)

当从命令行(而不是从cron)运行时,相同的java程序运行良好(我可以将youtube dl作为进程列表的一部分)。 在此处粘贴代码时遇到问题(由于格式问题) 把代码贴在这里

这是日志。。。

2015年3月17日星期二19:01:06 UTC:youtube dl未运行。现在发射。。。
2015年3月17日星期二19:02:06 UTC:youtube dl未运行。现在发射。。。
2015年3月17日星期二19:04:58 UTC:youtube dl未运行。现在发射。。。

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

尽管wget和youtube-dl在用户启动的任何脚本中都可以正常工作,但当cron触发时,youtube-dl脚本失败

我更改了youtube dl的名称。
早些时候是

youtube dl

现在它被修改为

python/usr/local/bin/youtube-dl

这在cron中工作得非常好


现在,我没有必要从Java启动整个程序。Shell脚本将执行…

您是否从守护进程线程运行youtube dl?您的意思是在Java中的单独线程中?否。java程序在youtube dl完成之前存在。不知道它是否开始…是的。如果外部进程是从守护进程线程启动的,那么jvm将关闭,即使该线程仍然被
process.waitFor()
阻塞。你试过从cron运行youtube dl吗?也许这是某种权限问题——这会让事情发生相反的情况(立即退出youtube dl,而jvm关闭会在过程中杀死youtube dl)。我有一个wget cron作业脚本和一个youtube cron作业脚本。。。这两个脚本计划每分钟运行一次。两者都在自己的目录中运行,并且都有一个包含wget和youtube dl命令的文件“0”。我可以看到wget脚本执行并启动wget命令(我可以在ps aux中看到它)。youtube cron scipt是exeuts,但我在ps aux output中没有看到任何youtube dl我的shell脚本在这里