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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM