在 Linux 上实现自动检测和启动 OpenOffice 的定时任务
in 默认分类 with 11 comments

在 Linux 上实现自动检测和启动 OpenOffice 的定时任务

in 默认分类 with 11 comments

前言

最近项目中用到的openoffice服务所部署的服务总是莫名的出现一些奇怪的现象 比如openoffice一直连接但是没有报错,正常运行中 openoffice服务的进程突然挂掉了。 这里记录下原因以及解决方案

原因

猜测自己粗心的原因,本地运行的其他项目调用的项目也是这个服务,导致同一时间访问的资源太多,连接池被占用等因素导致服务出现异常

解决方案

针对openoffice进程挂掉无法使用的问题。 1:考虑从代码层面添加重试机制或者多数据源切换 2:监听openoffice进程,并实现自动启动。 这里介绍第二个方案

基于linux Cron实现

#!/bin/bash
AppName=soffice
# 检查OpenOffice进程是否在运行
PID=`ps -ef |grep openoffice | grep $AppName |grep -v grep|awk '{print $2}'`

if [ x"$PID" != x"" ]; then
  echo "OpenOffice进程正在运行,不执行操作。"
else
  echo "OpenOffice进程未运行,执行启动操作。"
  # 启动OpenOffice命令
  nohup /opt/openoffice4/program/soffice.bin -headless -accept="socket,host=10.140.3.245,port=8100;urp;" -nofirststartwizard &
  sleep 5
fi

以下是对脚本的解释:

  1. AppName=soffice:设置变量 AppName 的值为 "soffice",用于后续的进程检查。
  2. PID=$(ps -ef | grep openoffice | grep $AppName | grep -v grep | awk '{print $2}'):使用 ps 命令结合管道和 grep 过滤器来获取包含 "openoffice" 和 "soffice" 的进程,并使用 awk 提取进程的 PID。这样可以检查 OpenOffice 进程是否在运行。
  3. if [ x"$PID" != x"" ]; then:使用条件语句判断变量 PID 是否为空。如果不为空,表示 OpenOffice 进程正在运行,输出相应的提示信息。
  4. echo "OpenOffice进程正在运行,不执行操作。":输出提示信息,表示 OpenOffice 进程正在运行,不需要执行启动操作。
  5. nohup /opt/openoffice4/program/soffice.bin -headless -accept="socket,host=10.140.3.245,port=8100;urp;" -nofirststartwizard &:启动 OpenOffice 的命令。nohup 命令用于在后台运行进程,并将输出重定向到文件 nohup.out。-headless 参数表示以无界面模式启动,-accept 参数指定 OpenOffice 接受连接的方式(通过 socket 连接到指定的主机和端口),-nofirststartwizard 参数表示不显示首次启动向导。
  6. sleep 5:暂停脚本执行 5 秒,等待 OpenOffice 进程启动完成。

注意脚本要添加可执行权限

以下是对 cron 表达式的解释

因此,这个 cron 表达式的含义是,在每小时的第 3 分钟到第 59 分钟之间的每 5 分钟执行一次 /opt/check_soffice.sh 脚本

Responses / Cancel Reply
  1. 1

    1

    Reply
  2. 1

    1

    Reply
  3. 1

    555

    Reply
  4. 叼茂SEO.bfbikes.com

    Reply
  5. 不错不错,我喜欢看 https://www.237fa.com/

    Reply
  6. 想想你的文章写的特别好https://www.ea55.com/

    Reply
  7. 不错不错,我喜欢看 www.jiwenlaw.com

    Reply
  8. 哈哈哈,写的太好了https://www.cscnn.com/

    Reply
  9. 文章的确不错啊https://www.cscnn.com/

    Reply
  10. 新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!

    Reply
  11. 2025年10月新盘 做第一批吃螃蟹的人coinsrore.com
    新车新盘 嘎嘎稳 嘎嘎靠谱coinsrore.com
    新车首发,新的一年,只带想赚米的人coinsrore.com
    新盘 上车集合 留下 我要发发 立马进裙coinsrore.com
    做了几十年的项目 我总结了最好的一个盘(纯干货)coinsrore.com
    新车上路,只带前10个人coinsrore.com
    新盘首开 新盘首开 征召客户!!!coinsrore.com
    新项目准备上线,寻找志同道合 的合作伙伴coinsrore.com
    新车即将上线 真正的项目,期待你的参与coinsrore.com
    新盘新项目,不再等待,现在就是最佳上车机会!coinsrore.com
    新盘新盘 这个月刚上新盘 新车第一个吃螃蟹!coinsrore.com

    Reply