执行py3o的重启脚本(包含手动执行,以及自动执行的脚本)

自动执行脚本代码:
  如果py3o的打印出现问题,可以直接执行/opt/lyt下的 restart-py3o-only.sh这个文件。即可重启服务。环境已经配置好了。一般情况下出现的问题是缺少java的环境。直接安装就可以了

 

#!/bin/bash
# 脚本用于仅重启 LibreOffice 守护进程以重启 py3o 服务

# 1. 停止 LibreOffice 守护进程
echo "正在停止 LibreOffice 守护进程..."
pkill -f "soffice.*--headless"
sleep 2  # 等待进程完全停止

# 验证 LibreOffice 进程是否已停止
if ps aux | grep -v grep | grep libreoffice > /dev/null; then
    echo "无法停止 LibreOffice 进程,请手动检查。"
    exit 1
else
    echo "LibreOffice 进程已停止。"
fi

# 2. 重新启动 LibreOffice 守护进程
echo "正在启动 LibreOffice 守护进程..."
/usr/lib/libreoffice/program/soffice --headless --invisible --nologo --nolockcheck --accept="socket,host=127.0.0.1,port=8100;urp;" --nofirststartwizard &
if [ $? -eq 0 ]; then
    echo "LibreOffice 守护进程启动成功。"
else
    echo "LibreOffice 守护进程启动失败,请检查日志或配置。"
    exit 1
fi

echo "py3o 服务重启完成。"

 

  1. 手动操作(如果不使用脚本): 如果你不想使用脚本,可以手动执行以下步骤:
    • 停止 LibreOffice 守护进程
       
      pkill -f "soffice.*--headless"
    • 验证进程已停止
       
      ps aux | grep libreoffice
      确保没有 soffice.bin --headless 相关的进程(除了 grep 本身)。
    • 重新启动 LibreOffice 守护进程
       
      /usr/lib/libreoffice/program/soffice --headless --invisible --nologo --nolockcheck --accept="socket,host=127.0.0.1,port=8100;urp;" --nofirststartwizard &
  2. 验证服务状态
    • 重启后,检查 LibreOffice 进程是否正常运行:
       
      ps aux | grep libreoffice
      你应该能看到类似之前的 soffice.bin --headless 进程,表明守护进程已重新启动。

注意事项

  • 端口配置:脚本使用默认端口 8100(--accept="socket,host=127.0.0.1,port=8100;urp;")。如果你的 report_py3o_fusion_server 配置了其他端口,请修改脚本或手动命令中的端口号。
  • 日志检查:如果重启后 py3o 报表生成有问题,检查 Odoo 日志(通常在 /var/log/odoo/ 或配置文件指定的路径)或 LibreOffice 守护进程的输出(如果有重定向到日志文件)。
  • 权限:确保以 root 或具有足够权限的用户运行命令,特别是 pkill 和启动 soffice 时。
  • 依赖确认:确保 LibreOffice 已正确安装(soffice 命令可用),且 report_py3o_fusion_server 模块的配置正确指向 LibreOffice 守护进程。

如果你的环境中 LibreOffice 守护进程的启动参数或路径有特殊配置(例如非默认端口或自定义路径),请调整脚本或命令!

posted @ 2025-07-07 10:47  *感悟人生*  阅读(34)  评论(0)    收藏  举报