1. 程式人生 > >Shell判斷子程序(pid)狀態實現動態迴圈

Shell判斷子程序(pid)狀態實現動態迴圈

[root@zhangwan2 xingcheng]# cat get_data_1.sh.20171101 
#!/bin/bash
#Date:2017/7/29
#Author: create by xingcheng
#Mail:
#Function:抓取微信後臺資料狀態監控,二次判斷執行指令碼。

#################################################################################
#載入環境變數
source /etc/profile
#設定系統語言
#export LANG="en_US.UTF-8"

#########
######################################################################## #定義變數 DIR=/web/wechatbi/process time1=$(date +%s) ################################################################################# cd $DIR chown -R php-fpm /web/wechatbi/public/qrcode chown -R php-fpm /web/wechatbi/logs ###############
################################################################## #檢視程序 Semih(){ sleep 180 count=$(ps aux|grep 'php /web/wechatbi/tasks/cli.php thread index'|grep -v "grep" |wc -l) if [ $count -eq 0 ] then get_started Judgement_time else Judgement_time fi } ############
##################################################################### #拉起子指令碼 get_data_2(){ for I in $(seq 1 100) do { /bin/bash /home/xingcheng/xingcheng/get_data_2.sh }& sleep 2 done } ################################################################################# #判斷次數輪訓次數 Judgement_time(){ local time2=$(date +%s) if [ $(($time2-$time1)) -ge 9000 ] then kill -9 $(ps aux|grep 'php /web/wechatbi/tasks/cli.php thread index'|awk '{print $2}') exit else Semih fi } ################################################################################# #清理資料庫 get_started(){ php /web/wechatbi/tasks/cli.php recover recover >/web/wechatbi/logs/get_data.log 2>/web/wechatbi/logs/get_data.err get_data_2 } ################################################################################# get_started Semih

二、子指令碼


[[email protected] xingcheng]# cat get_data_2.sh 
#!/bin/bash
#Date:2017/7/29
#Author: create by xingcheng
#Mail:
#Function:抓取微信後臺資料狀態監控,二次判斷執行指令碼。
source /etc/profile
DIR=/web/wechatbi/process
cd $DIR
frequency=1

function judge(){
   php /web/wechatbi/tasks/cli.php  thread index $(cat $pid_2) >/web/wechatbi/logs/get_data.log 2>/web/wechatbi/logs/get_data.err
   local status_2=$(echo $?)
   frequency=$(($frequency+1))
   if [ $status_2 -ne 0 -a $status_2 -ne 137 ]
   then
       if [ $frequency -eq 5 ]
       then
           /usr/bin/python /home/xingcheng/monitor/mail/mail.py "[email protected]"  "Error(): error in zhuashuju"  "$1"
           exit
       else
           sleep 10
           judge $(cat $pid_2)
      fi
  fi
}



php /web/wechatbi/tasks/cli.php thread index >/web/wechatbi/logs/get_data.log 2>/web/wechatbi/logs/get_data.err
status_1=$(echo $?)
pid_1=$(echo $$)
pid_2=$(($pid_1+1))

if [  $status_1 -ne 0 -a -f $pid_2 ]
  then
      judge $(cat $pid_2)
fi

相關推薦

Shell判斷程序pid狀態實現動態迴圈

[root@zhangwan2 xingcheng]# cat get_data_1.sh.20171101 #!/bin/bash #Date:2017/7/29 #Author: create b

shell文字過濾程式設計:awk之迴圈判斷及陣列

與上一節printf一樣,awk的迴圈判斷和C語言的迴圈判斷語法極其類似。 1、 While迴圈 #!/bin/sh awk ' BEGIN { ORS="" } { i=0 while (i < NF) { printf

自定義View Graphics2D 實現動態效果

自定義動畫的動態包括兩個方面 讓動畫動起來 (這類動畫可以通過週期行重畫實現) 實現和使用者的互動 在繪圖的整個過程中,經常會使用到雙快取技術,這是一項挺重要的技術,,為什麼這麼說呢? 能提高繪圖的效率 實現繪圖的過程和結果分離 ⚠️ 理解和掌

作業系統——程序1什麼是程序和對程序狀態的理解

在作業系統中滿足的大多數需求都涉及程序,在有了應用程式、系統軟體和資源的概念,就需要一種有序的方式管理應用程式的執行,從而能夠讓資源對多個應用程式是可用的、能夠讓所有程式得以執行、充分利用所有裝置。 程序如此重要那麼程序是什麼?首先程序是一個正在計算機上執行的程式例項,即程式是靜態

LeetCode 392. 判斷序列C、python

給定字串 s 和 t ,判斷 s 是否為 t 的子序列。 你可以認為 s 和 t 中僅包含英文小寫字母。字串 t 可能會很長(長度 ~= 500,000),

Leetcode 392:判斷序列最詳細的解法!!!

給定字串 s 和 t ,判斷 s 是否為 t 的子序列。 你可以認為 s 和 t 中僅包含英文小寫字母。字串 t 可能會很長(長度 ~= 500,000),而 s 是個短字串(長度 <=100)。 字串的一個子序列是原始字串刪除一些(也可以不刪除)字元而不

判斷一個字串是不是另一個的匹配

題目描述 判斷短字串中的所有字元是否在長字串中全部出現 輸入: bc            abc 輸出:true 【程式碼】 #include<iostream>

Python學習筆記13:標準庫之程序subprocess包

ubprocess包主要功能是執行外部的命令和程式。從這個意義上來說,subprocess的功能與shell類似。 subprocess以及常用的封裝函式 當我們執行python的時候,我們都是在建立並執行一個程序。 在Python中,我們通過標準庫中的subprocess

4程序程序的開啟

序列問題: 多道處理技術 (*******************) 1. 時間的複用,cpu在多個任務之間不斷的進行切換 2. 空間的複用 多個任務必須開闢屬於自己的記憶體空間 (物理級別的隔離) 相關概念:(*******************) cpu: 計算執行任務的 不會執行IO操作(I

python程序Process類的使用

Python提供了multiprocessing模組來開啟子程序,並在子程序中執行我們定製的任務。提一嘴(multiprocessing模組的功能眾多,支援子程序,通訊,共享資料,執行不同形式的同步。為些它提供了Process、Queue、Pipe、Lock等元件。)建立程序

Linux 中 4 個簡單的找出程序 IDPID的方法 | Linux 中國

每個人都知道 PID,究竟什麼是 PID?為什麼你想要 PID?你打算用 PID 做什麼?你腦子

linux下如何在shell中結束程序ctrl+c\ctrl+z\ctrl+d\ctrl+\的用法

ctrl-c:傳送 SIGINT 訊號給前臺程序組中的所有程序。常用於終止正在執行的程式; ctrl-z:傳送 SIGTSTP訊號給前臺程序組中的所有程序,常用於掛起一個程序; ctrl-d:不是傳送

程序初體驗:手把手教你寫出第一個小程序

輸入框 個人 創建 公測 快速 nsh 成功 too 調用 本文筆者將根據quick start中的範例代碼,帶大家簡單地剖析一下小程序的運行方式,並介紹小程序開發中一些通用的特性,帶著大家一步步寫出自己的小程序。 適用對象:前端初學者,對小程序開發感興趣者 tip

最長公共序列LCS

公共子序列 一個 clas style == ++ 字符串 tro 我們 最長公共子序列: LIS是一個典型的用動規解決的問題。 給出兩個字符串,求出兩串的最長公共子序列的長度。 我們可以構造出他的結構特征。f(i,j)表示str1[1]~str1[i]和str2[1]~s

manacher算法處理最長的回文

pub 中心 回文子串 max 最大 += public img cto 在上篇《manacher算法處理最長的回文子串(一)》解釋了manacher算法的原理,接著給該算法,該程序在leetcode的最長回文子串中通過。首先manacher算法維護3個變量。一

manacher算法處理最長的回文

字母 .cn ddc 還要 自己 它的 nac 回文串 ima 引言 相信大家都玩過折疊紙張,如果把回文串相當於折疊一個A4紙,比如ABCDDCBA就是沿著中軸線(D與D之間)對折重合,那麽這個就是一個回文串。或者是ABCDEDCBA的中軸線就是E,那麽沿著中

微信小程序 支付功能前端實現

pen 回退 ole pack spa session 統一支付 ges 應用 只提供微信小程序端代碼: 1 var app = getApp(); 2 Page({ 3 data: {}, 4 onLoad: function (options) {

shell第四篇

中文 key 文本 什麽 例子 理念 通用 close 其它 摘自王垠的:Unix的缺陷   我想通過這篇文章解釋一下我對 Unix 哲學本質的理解。我雖然指出 Unix 的一個設計問題,但目的並不是打擊人們對 Unix 的興趣。雖然 Unix 在基礎概念上有一個挺嚴重的問

UI組件之AdapterView及其Gallery畫廊控件使用

convert cal instance ram scaletype 循環 reat targe 外觀 聽說 Gallery如今已經不使用了,API使用ViewPaper取代了,以後再學專研ViewPaper吧如今說說Gallery畫廊,就是不停顯示圖片的意思 Gall

制作根文件系統、使用NFS燒寫、編譯使用驅動程序2

clas bz2 節點 family 好的 根文件系統 pan ini 驅動 1.制作根文件系統 1.1 先解壓文件系統,/wok/nfs_root 目錄下是已經構造好的各種文件系統:① fs_mini.tar.bz2 是最小的根文件系統,裏面的設備節點是事先建立好的;②