实现以守护进程,定时检测openoffice是否退出,如果进程不存在,通过脚本将openoffice起起来即可。
 
具体操作步骤:

第一步:

将openoffice.sh脚本放置在root目录下面,(也可自行决定),如图所示:

脚本内容:

  1. #!/bin/sh
  2. #set -x
  3. OPENOFFICEPID=`ps -ef|grep "/opt/openoffice4/program/soffice"|grep -v grep|grep -v grep|awk '{print $2}'`
  4. if [ ! -n "$OPENOFFICEPID" ]; then
  5. echo "OPENOFFICEPID is empty"
  6. echo "start openoffice"
  7. /opt/openoffice4/program/soffice  -headless -accept="socket,host=127.0.0.1,port=8100;urp;StarOffice.Service"   -nofirststartwizard &
  8. else
  9. #kill all openoffice process
  10. # ps -ef|grep "/opt/openoffice4/program/soffice"|grep -v grep|grep -v grep|awk '{print $2}'  | xargs kill
  11. echo "OPENOFFICEPID is $OPENOFFICEPID is started!"
  12. fi
 

第二步:赋权限

chmoda+x openoffice.sh

第三步:编辑crontab文件

命令行输入:crontab –e

输入如下内容:*/5 * * * * /bin/sh/root/openoffice.sh  注:每5分钟执行一次此脚本,可以根据实际需要进行修改;

Wq保存退出;

文件编辑路径:

第四步:查看调度任务

crontab-l //列出当前的所有调度任务

如图所示:

验证:

通过

ps -ef|grep"/opt/openoffice4/program/soffice"|grep -v grep|grep -v grep|awk'{print $2}'  | xargs kill

此命令将openoffice所有进程杀掉,然后等待几分钟后查看openoffice是否重新启动:

ps -ef|grep/opt/openoffice4/program/soffice

关于cron服务知识:

1. 键入 crontab  -e 编辑crontab服务文件

例如 文件内容如下:

*/2 * * * * /bin/sh /home/admin/deleteFile.sh

保存文件并并退出

2. 查看该用户下的crontab服务是否创建成功, 用 crontab  -l 命令

3. 启动crontab服务

一般启动服务用service crond start;

4. 查看服务是否已经运行

ps和 servicecrond status都可以;

5. crontab命令

cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明:

crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数

  crontab -l//列出某个用户cron服务的详细内容

  crontab -r//删除没个用户的cron服务

  crontab -e//编辑某个用户的cron服务

  比如说root查看自己的cron设置:crontab -u root -l

  再例如,root想删除fred的cron设置:crontab -u fred -r

  在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root-e

  进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls>> /tmp/ls.txt

任务调度的crond常驻命令

crond 是Linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此

任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工

作便会自动执行该工作。

6. crontab命令选项:

-u指定一个用户

-l列出某个用户的任务计划

-r删除某个用户的任务

-e编辑某个用户的任务

如果需要编辑某个用户的定时执行任务,如weblogic用户的定时执行任务:

crontab -u weblogic –e

输入:*/1 * * * *ls >>/usr/tmp/ls.txt 保存退出:

 

删除weblogic任务时用:

7. cron文件语法:

分     小时    日       月       星期     命令

0-59   0-23   1-31  1-12     0-6     command    (取值范围,0表示周日一般一行对应一个任务)

记住几个特殊符号的含义:

“*”代表取值范围内的数字,

“/”代表”每”,

“-”代表从某个数字到某个数字,

“,”分开几个离散的数字

直接写/etc/crontab 文件内容不生效。

service crond reload/restart 也不生效。

查询原因为,直接写crontab文件时,需要指定执行用户,并且上面的环境变量不能删除。

如:

# cat /etc/crontab
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
*/1 * * * * root date > /root/test.txt

如果定时任务中不指定运行用户,如:

*/1 * * * * date > /root/test.txt

则不会执行此条命令。

3.服务重启
 1 /etc/init.d/crond restart
 2 service crond restart
 
4.cron日志
看 /var/log/cron.log这个文件就可以,可以用tail -f /var/log/cron
 
5.脚本的目录要放在:/home/super/openoffice.sh下
放在:/home/super/openoffice/openoffice.sh目录下执行出现错误:sudo: ./openoffice.sh: command not found
 
 
 

解决openoffice进程异常退出的办法:的更多相关文章

  1. 解决openoffice进程异常退出的办法

    步骤1 编写脚本 openoffice.sh #!/usr/bin/bash OPENOFFICEPID=`ps -ef|grep "/opt/openoffice4/program/sof ...

  2. Nginx问题定位之监控进程异常退出

    nginx在运行过程中是否稳定,是否有异常退出过?这里总结几项平时会用到的小技巧. 1. 在error.log中查看是否有signal项,如果有,看看signal是多少. 比如,这是一个异常退出的情况 ...

  3. [典型漏洞分享]YS VTM模块存在格式化字符串漏洞,可导致VTM进程异常退出【高危】

    YS VTM模块存在格式化字符串漏洞,可导致VTM进程异常退出[高危] 问题描述: YS VTM模块开放对外监听端口(8554和8664),此次使用sulley fuzzing框架对监听在8664端口 ...

  4. MHA监控进程异常退出

    这两天遇到一个非常诡异的问题,打算和大家分享一下.只所以诡异估计是自己知识面不够吧.线上的MHA一直没有开启自动切换,都是手动切换的,最近开启了自动切换以后,退出securecrt窗口以后发现监控进程 ...

  5. MHA监控进程异常退出(MHA版本:0.56)

    最近遇到一个非常诡异的问题,mha后台进程自己中断退出了.以下是报错:Mon Dec 21 20:16:07 2015 - [info] OK.Mon Dec 21 20:16:07 2015 - [ ...

  6. Android native进程间通信实例-socket本地通信篇之——服务端进程异常退出解决办法

    导读: 好难受啊,为什么服务端说挂就挂,明明只是客户端关闭而已,服务端怎么能挂呢? 想想,如果手机上使用一个聊天程序的时候,手机端关闭了聊天程序,那么远端服务器程序总不能说挂就挂吧!所以一定要查明真相 ...

  7. nodejs进程异常退出处理方法

    1. 捕获uncaughtException process.on('uncaughtException', function (err) { //打印出错误 console.log(err); // ...

  8. 赤峰项目Nginx进程异常的处理办法

    #强制杀掉Nginxps -ef|grep nginx|grep -v grep|awk '{print $2}'|xargs kill -9rm -rf /usr/local/openresty/n ...

  9. 解决mac eclipse 异常退出后无法打开处于loading状态

    <workspace>\.metadata\.plugins\org.eclipse.core.resources目录,删除文件 .snap

随机推荐

  1. HTML5页面,用JS 禁止弹出手机键盘

    用户点击input的时候: 会默认调出手机软键盘: 场景:文本框获取焦点时,需要禁止手机弹出自带的输入键盘: 解决方案1: 用一个p/div等标签显示内容:然后放一个隐藏的input: (可能的场景: ...

  2. lseek使用说明

    lseek使用说明 表头文件#include<sys/types.h>#include<unistd.h> 定义函数off_t lseek(int filde,off_t of ...

  3. mac下的一些mysql操作

    #一.从终端进入mysql 不同于windows下的mysql.mac下的mysql安装路径不同,所以操作上会略有不同: 以下操作以默认安装mysql为前提. ##一(1):打开终端后,先设置路径,后 ...

  4. 关于python中urllib.urlencode的时候出错:UnicodeEncodeError: ‘ascii’的记录

    原文我参见了:http://hi.baidu.com/setcookie/item/ddc6b694b1f13435336eeb3c 为毛我要费事的写下了,就是为了让自己记录一下,下面的也是直接摘录过 ...

  5. Volatility2.4以上版本及fmem使用指南

    因为要做一个取证项目,需要用到volatility这款软件,网上很多教程已经是很多年以前的东西了,导致很多人在制作profile这一步就卡住了,今天解决了这个问题,记录在此,分享给大家共同学习 1.安 ...

  6. 关于微信中JS-SDK的接口验证过程详细说明

    最近在做微信的企业服务号,刚开始通过个人的测试平台进行开发,使用了自定义菜单,自定义菜单包含两个功能:1.扫一扫,通过扫描我们账单的二维码,绑定账户和账单的关系:2.打开我们系统的账单查询页面,查询账 ...

  7. pdi vcard-2.1

    vCard The Electronic Business Card Version 2.1 A versit Consortium Specification September 18, 1996 ...

  8. c++下基于windows socket的服务器客户端程序(基于UDP协议)

    前天写了一个基于tcp协议的服务器客户端程序,今天写了一个基于UDP协议的,由于在上一篇使用TCP协议的服务器中注释已经较为详细,且许多api的调用是相同的,故不再另外注释. 使用UDP协议需要注意几 ...

  9. Kotlin Reference (八) Classes and Objects

    most from reference 类 Kotlin的类的声明使用关键字class class Invoice { } 类声明由类名.类头(指定其类型参数,构造函数等)和类体组成,由大括号括起来. ...

  10. Leetcode 590. N-ary Tree Postorder Traversal

    DFS,递归或者栈实现. """ # Definition for a Node. class Node: def __init__(self, val, childre ...