shell腳本監測進程啟動
① shell腳本判斷是否有某進程在運行
1 、可以通過ps命令獲取所有的進程,然後通過awk命令提取進程名,再用grep提取相應的進程名即可。
2、參考代碼如下:
ps-aux|awk'{print$11}'|grep"^$1">/dev/null
case$?in
0)
echo"findprocess$1"
;;
1)
echo"$1isnotrunning"
;;
*)
echo"unknowerror"
esac
3、運行結果如下
② 在安卓shell腳本中如何讓它一直運行判斷一個進程是否存在。 比如QQ進程 存在的話不進行任何操作
如果你是通過一個進程的名字作為關鍵詞來查找進程是否存在的話,可使用
ps -ef | grep "<關鍵詞>" | wc -l
輸出為0表示不存在,輸出大於0,表示存在,且數字就是這個關鍵詞進程的個數;
如果你是通過進程號PID來查找進程是否存在,可以使用
ps --no-heading <PID> | wc -l
同樣,
輸出為0表示不存在,輸出=1,表示存在,因為進程號不可能重復,所以輸出肯定非0即1
③ 如何編寫一個shell腳本實時的查看某個進程
如果進程名字是復雜且唯一的那隻需要使用grep做簡單匹配,使用下面命令:
ps-ef|grep-vgrep|grep'進程名字'&&echo'正在運行'||echo'已停止運行'
④ 怎麼獲取shell在控制台執行的進程id
當我在執行shell腳本時,它會啟動一個叫子shell的進程。作為主shell的子進程,子shell將shell腳本中的命令作為批處理運行(因此稱為「批處理進程」)。
在某些情況下,你也許想要知道運行中的子shell的PID。這個PID信息可以在不同的情況下使用。比如,你可以使用shell腳本的PID在/tmp下創建一個唯一的臨時文件。有時侯腳本需要檢測所有運行的進程,它可以從進程列表中排除自身的子shell。
在bash中,子shell進程的PID存儲在一個特殊的變數『$$'中。這個變數只讀,你不可以在腳本中修改它。比如:
復制代碼代碼如下:
#!/bin/bash
echo "PID of this script: $$"
上面的腳本會得到下面的輸出:
復制代碼代碼如下:
PID of this script: 6583
除了$$, bash shell還會導出其他的只讀變數。比如,PPID存儲子shell父進程的ID(也就是主shell)。UID存儲了執行這個腳本的當前用戶ID。比如:
復制代碼代碼如下:
#!/bin/bash
echo "PID of this script: $$"
echo "PPID of this script: $PPID"
echo "UID of this script: $UID"
輸出是:
復制代碼代碼如下:
PID of this script: 6686
PPID of this script: 4656
UID of this script: 1000
上面輸出中,PID每次執行都會變化。這個因為每次運行都會創建一個新的shell。另一方面,PPID每次都會一樣只要你在同一個shell中運行。
對於所有bash內置變數列表,參考man頁。
復制代碼代碼如下:
$ man bash
⑤ 求幫忙寫一個shell腳本,監控進程的。
#!/bin/sh
ps -ef | grep -v grep || grep -w 'java -jar /opt/mcb/scap/bin/ftp.jar monitor'
if [ $? -eq 0 ]; then
echo "start"
else
java start
fi
⑥ shell 檢測某一個進程是否存在
#!/bin/bash
pid=`ps -ef | grep "想要監控的程序名"|wc -l`
if [ -gt $pid ]
then
echo "is running"
else
echo "not running"
fi
⑦ shell 腳本檢測當前腳本已在執行則kill
sh /usr/local/sbin/gdas/start.sh
改為
source /usr/local/sbin/gdas/start.sh
用sh方式去執行就是另開一個shell去跑,相當於是非同步的,不等start.sh執行完就執行下面的判斷了。用source在當前shell執行該腳本,就是阻塞方式,就不存在此問題了。
建議先手動執行腳本,檢驗無誤了再加入crontab
⑧ shell腳本如何判斷應用程序是否開啟正常
你應該自己問自己一個問題,何所謂正常打開,正常打開的話有什麼特徵?能回答這個問題就可以解決這個問題了。
反正我是不明白什麼叫「正常打開」。如果加入到進程表就算正常打開的話,可以考慮樓上ps的做法。