现象:

最近的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

linux中的openoffice服务终止运行的更多相关文章

  1. Linux中如何设置服务自启动?

    转自:Linux中如何设置服务自启动? 有时候我们需要Linux系统在开机的时候自动加载某些脚本或系统服务,主要用三种方式进行这一操作: ln -s             在/etc/rc.d/rc ...

  2. Linux中的sshd服务

    Linux中的sshd服务,主要用于pst终端,远程连接到linux服务中 看sshd服务状态 service sshd status 停止sshd服务 service sshd stop 启动ssh ...

  3. 在linux中启动mysql服务的命令

    用reboot命令重启linux服务器之后会导致mysql服务终止,也就是mysql服务没有启动.必须要重启mysql服务,否则启动jboss时会 报有关数据库mysql方面的错误. 命令如下: 第一 ...

  4. 讲述一下自己在linux中配置ftp服务的经历

    本人大二小白一名,从大一下学期就开始接触到linux,当时看到学校每次让我们下载资源都在一个ftp服务器中,感觉特别的高大上,所以自己就想什么时候自己能够拥有自己的ftp服务器,自己放一点东西进去,让 ...

  5. linux中service *** start与直接运行/usr/bin/***的区别

    在linux想要运行启动一个服务有两种方法: 1,运行/etc/init.d/目录下的shell脚本,还可以有快捷方式,service *** start/ stop/restart /status, ...

  6. [转] linux中巧用ctrl-z后台运行程序

    背景: 最近在执行一些长时间程序的时候,老是一不小心忘了输入‘&’ , 结果终端就卡在那里了,很是郁闷 以前总是再新开一个终端. 今天翻看<鸟哥的linux私房菜>的时候,发现介绍 ...

  7. 在Linux中设置自启动服务或程序

    三种方法: 1.基于linux的system V机制,其中有个运行级别和链接软连接指向服务脚本的机制. 服务脚本一般处于/etc/init.d/目录下, 而运行级别制定的默认执行脚本在/etc/rc. ...

  8. Linux中的SSH服务

    目录 SSH 使用scp在两台Linux间传数据: 基于SSH做远程访问,可以使用ftp服务的相关指令sftp root@192.168.10.10 Openssh公私钥验证: SSH SSH(Sec ...

  9. Linux中rsync备份服务部署

    rsync介绍 rsync是一款开源的.快速的.多功能的.可实现全量及增量的本地或远程数据同步备份工具 在常驻模式(daemon mode)下,rsync默认监听TCP端口873,以原生rsync传输 ...

随机推荐

  1. NOI2014 随机数生成器

    随机数生成器 [问题描述] 小H最近在研究随机算法.随机算法往往需要通过调用随机数生成函数(例如Pascal中的random和C/C++中的rand)来获得随机性.事实上,随机数生成函数也并不是真正的 ...

  2. Linux内核与根文件系统的关系

    开篇题外话:对于Linux初学者来说,这是一个很纠结的问题,但这也是一个很关键的问题!         一语破天机: “尽管内核是 Linux 的核心,但文件却是用户与操作系统交互所采用的主要工具.这 ...

  3. web.xml配置详解之欢迎页面和错误页面

    <!-- 应用的欢迎页面  采用list的方式罗列欢迎页面, 系统会从第一个找到最后一个,找到了文件就不继续往下找了.优先显示前边的. --> <welcome-file-list& ...

  4. ASP.NET MVC 3.0 Controller基础

    ASP.NET MVC 3.0 Controller基础   1.Controller类与方法 Controller(控制器)是ASP.NET MVC的核心,负责处理浏览器请求,并作出响应.Cotro ...

  5. 关于css样式的看法

    1.通常有两种方式,第一种是直接写在页面标签中,通过属性style,另一种是通过标签选择器赋样式 第一种方式,就是每一个标签都需要写一遍样式,同时没有做到样式和内容的分离,不方便以后的样式替换,主题的 ...

  6. [转]"由于这台计算机没有远程桌面客户端访问许可证,远程会话被中断"的解决方案

    先使用如下命令登录到服务器: mstsc /v:{服务器IP} /admin 然后再使用下列方法之一即可. 方法一: 1.单击“开始→运行”,输入“gpedit.msc”打开组策略编辑器窗口,依次定位 ...

  7. 多控制器之UIWindow

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  8. 一个赴美的应届毕业生Kevin,在美国做程序员的访谈

    作者MUM计算机   转载请注明 在国内IT市场人才日渐饱和且竞争激烈的今天,作为一名代号996的程序猿,你是否也会对赴美工作心生向往呢?作为国内普通院校的应届本科生年薪就能轻松破40万 (人民币), ...

  9. [有错误]堆排序的实现 java

    #include<iostream> using namespace std; //大根堆,从小到达排序 ]; void swap(int &a,int &b) { a=a ...

  10. HW机试字符串压缩java(1)

    package huawei; public class StringZip { public static String stringZip(String a) { String ans =&quo ...