• linux中的openoffice服务终止运行


            现象:

                 最近的linux中的openoffice服务进程运行一段时间后会自动停止,刚开始还以为忘了启动执行自启动脚本导致的。在连续出现前述情况后,开始查找应用程序崩溃的原因,首先查看linux服务器的内存使用情况:

          free -m
    

                显示空闲内存是充足的,不存在内存不足情况,所以不是因为内存不足导致服务进程被系统进程killed的原因。因为linux服务器中,如果系统内存不足,会killed一些应用程序的进程。

               下一步查看服务器运行日志,从日志中找出一些蛛丝马迹

          cd /var/log

               可以看到message文件,这就是系统运行的日志。打开相关的message文件,搜索openoffice,发现了以下一段日志说明

    Nov 13 13:56:48 test abrt[18890]: saved core dump of pid 11482 (/opt/openoffice4/program/soffice.bin) to /var/spool/abrt/ccpp-1447394202-11482.new/coredump (573923328 bytes)
    Nov 13 13:56:49 test abrtd: Directory 'ccpp-1447394202-11482' creation detected
    Nov 13 13:56:49 test abrtd: Size of '/var/spool/abrt' >= 1000 MB, deleting 'ccpp-1444992125-1504'
    Nov 13 13:56:49 test abrt[18890]: size of '/var/spool/abrt' >= 1250 MB, deleting 'ccpp-1444992125-1504'
    /opt/openoffice4/program/soffice: line 121: 11482 Aborted                 (core dumped) "$sd_prog/$sd_binary" "$@"
    Nov 13 13:56:49 test abrtd: Size of '/var/spool/abrt' >= 1000 MB, deleting 'ccpp-1445246374-1907'
    Nov 13 13:56:49 test abrtd: New crash /var/spool/abrt/ccpp-1447394202-11482, processin

               从上面的日志可以看出,openoffice运行错误记录到

         /var/spool/abrt/ccpp-1447394202-11482.new/coredump

              进入/var/spool/abrt, 可以看到几个目录

         ccpp-1436301918-8428
         ccpp-1446462729-2232
         ccpp-1446462729-2232.new
         ccpp-1447394202-11482

              他是根据应用程序的pid生成的目录,比如8428就是openoffice运行时的pid。由于每个目录中都有一个coredump文件。如果coredump文件大小之和超过1G之后,便会导致后续应用程序运行错误时的coredump文件无法生成。将上诉含有pid的目录暂时迁移到空闲的空间中,然后再启动openoffice服务,跟踪运行情况生成错误信息

    Nov  13 19:12:15 test abrt[10039]: saved core dump of pid 2232 (/opt/openoffice4/program/soffice.bin) to /var/spool/abrt/ccpp-1446462729-2232.new/coredump (296034304 bytes)
    Nov  13 19:12:15 test abrtd: Directory 'ccpp-1446462729-2232' creation detected
    Nov  13 19:12:16 test abrtd: New crash /var/spool/abrt/ccpp-1446462729-2232, processing
    

              在/var/spool/abrt/目录中执行openoffice服务自启动程序,结果出现

    shell-init: error retrieving current directory: getcwd: cannot access parent directories:
    chdir: error retrieving current directory: getcwd: cannot access parent directories:

              网上查询了,该错误表示 getcwd 命令无法定位到当前工作目录,出现这种情况的原因有:

    1. 服务启动文件不存在
    2. 当前运行用户没有权限

             于是使用cd退出当前目录,重新执行service命令,成功。

              最后追踪发现用户上传的一个文档文件很大,因而导致openoffice进行转换的时候导致服务崩溃。

          参考资料

    • http://blog.csdn.net/wen0006/article/details/3945845
  • 相关阅读:
    bugku crypto 告诉你一个秘密(ISCCCTF)
    递归法求组合数C(m,n)
    bugku 逆向 take the maze
    P1118 [USACO06FEB]数字三角形`Backward Digit Su`… (dfs)
    递归 dfs 记忆化搜索 动态规划
    c++ 取整:四舍五入 向上取整 向下取整
    2019 计蒜之道 初赛 第一场 商汤的AI伴游小精灵
    华南理工大学“三七互娱杯” D HRY and array
    华南理工大学 “三七互娱杯” G HRY and tree
    2019年湘潭大学程序设计竞赛(重现赛)
  • 原文地址:https://www.cnblogs.com/wala-wo/p/5119179.html
Copyright © 2020-2023  润新知