首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何检测和终止楔形soffice.bin进程?

如何检测和终止楔形soffice.bin进程?
EN

Stack Overflow用户
提问于 2012-12-07 05:17:32
回答 2查看 4.7K关注 0票数 2

我使用libreoffice/openoffice作为一个无头进程,在我的服务器上处理一些我通过unoconv“提交”的文档转换任务。有时,实际执行工作的进程soffice.bin似乎被卡住了。我试着尝试使用strace,发现当启动新的unoconv实例时,它们仍然连接并与soffice进程对话,只是在“坏的”文档进入后没有其他事情发生。如果只是简单地检测soffice不再与传入套接字通信,那么编写watchdog就很容易了。但很明显,事情并没有那么简单。有没有办法知道什么时候事情变得糟糕了?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-01-03 17:59:43

下面是我设置为cron作业的内容:

代码语言:javascript
复制
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

看起来工作正常。

票数 2
EN

Stack Overflow用户

发布于 2017-06-19 14:14:32

问题可能与soffice多线程有关,因此解决技巧可能如下所示:

使用unoconv作为service.

  • creating a init.d脚本并作为守护进程启动的
  1. 因此,unoconv将继续运行并维护单个进程,而不是unoconv调用soffice来启动。
  2. 创建启动进程文件,如下所示:

!/bin/sh

中的案例"$1“

((开始))

*/usr/bin/unoconv --listener &

*;

((停止))

*killall soffice.bin

*;

((重新启动))

*killall soffice.bin

睡眠时间:1。

*/usr/bin/unoconv --listener &

*;

esac

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13752742

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档