1. 程式人生 > >解決openoffice進程異常退出的辦法:

解決openoffice進程異常退出的辦法:

plain csdn string 調度 -1 source tab cron 環境

實現以守護進程,定時檢測openoffice是否退出,如果進程不存在,通過腳本將openoffice起起來即可。 具體操作步驟:

第一步:

將openoffice.sh腳本放置在root目錄下面,(也可自行決定),如圖所示:

技術分享

腳本內容:

[java] view plain copy
  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

解決openoffice進程異常退出的辦法: