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