openoffice.org - 如何检测并终止楔入的 soffice.bin 进程?

标签 openoffice.org libreoffice

我使用 libreoffice/openoffice 作为 headless 进程来处理我的服务器上的一些文档转换任务,这些任务是我通过 unoconv“提交”的。有时,实际执行工作的进程 soffice.bin 似乎会陷入困境。我尝试使用 strace,发现在启动新的 unoconv 实例时,它们仍然连接并与 soffice 进程对话,只是在“坏”文档进入后没有发生任何其他事情。如果它如此简单,只检测该 soffice不再与传入的套接字通信,编写看门狗很容易。但显然事情并没有那么简单。有什么想法如何判断事情是否已经恶化?

最佳答案

这是我设置的 cron 作业:

def monitor_unoconv
  retval = false
  target_dir = "/tmp/monitor_unoconv"
  begin
    Timeout::timeout(30) do
      FileUtils.mkdir_p(target_dir)
      FileUtils.cp(File.dirname(__FILE__) + "/../hello.odt", target_dir)
      Dir.chdir target_dir do
        retval = system("unoconv -f html hello.odt")
      end
    end
  rescue => e
    STDERR.puts "Caught error #{e.inspect}"
    retval = false
  end
  if !retval
    STDERR.puts "soffice process appears hung.  Killing it"
    STDERR.puts `killall soffice.bin`
    sleep 5
    STDERR.puts `killall -9 soffice.bin`
  end
end

看起来工作正常。

关于openoffice.org - 如何检测并终止楔入的 soffice.bin 进程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13752742/

相关文章:

java - 如何使用 java 将图像插入到 openoffice writer 文档中?

linux - LibreOffice 命令行转换 - 没有输出文件?

libreoffice - 根据文档,Libre Office Calc OR 无法工作

latex - 用于记录的轻量级标记 (wiki) 语言

从 openOffice 或 Microsoft Office 检查葡萄牙语语法的 Java API

python - 如何配置 PyCharm 开发 LibreOffice Python 宏?

java - LibreOffice Calc 中的脚本

java - 货币格式 Apache POI

java - 如何在 Java 中修改 OpenOffice.org Draw 图表?

excel - 如何在 LibreOffice/OpenOffice/Excel 公式中减去时间常数?