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 個簡單的找出程序 ID(PID)的方法 | 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 是最小的根文件系統,裏面的設備節點是事先建立好的;②