【问题标题】:Process get terminated when I call system() with wait=FALSE当我使用 wait=FALSE 调用 system() 时进程终止
【发布时间】:2020-04-24 16:08:55
【问题描述】:

我正在尝试在 OpenCPU 上处理视频,因为它们非常大,我想使用“系统”调用“FFmpeg”进程并让它继续工作直到完成。 但是我需要获取由 OpenCPU 创建的临时“文件目录”,这样我就可以拉出该目录,直到视频转换完成。 为此,我使用参数 wait=FALSE 调用系统函数,如下所示

如果我在我的机器上使用库(opencpu),这可以正常工作,但是当我将它移到生产环境(Ubuntu 14.x)中时,系统调用会在启动后中断。

这是可以使用 opencpu.confg 修复的吗?还是bug?

ffmpeg_exe <- "/usr/bin/ffmpeg" # Linux path

exec_convert <- paste0("( ",ffmpeg_exe,' -i ',input_file,' ',convert_command,' ',output_file, ' 2> PROCESS_OUTPUT.txt ;  ls > PROCESS_DONE.txt ',")")

system(exec_convert, wait=FALSE)

【问题讨论】:

    标签: opencpu


    【解决方案1】:

    我刚刚发现在 linux 上,OpenCPU 不允许这种行为,它会在请求返回时杀死所有子进程。这是故意的。它不希望孤儿进程可能永远在服务器上运行,opencpu 不是为此目的而设计的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-08-26
      • 1970-01-01
      • 1970-01-01
      • 2021-09-05
      • 2019-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多