A. 求幫忙寫一個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
B. 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、運行結果如下
C. 如何編寫一個shell腳本查看某個進程是否在運行
1 、編寫一個shell腳本來查看某個進程是否在運行,用戶可以通過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、腳本運行結果如下
D. shell腳本判斷進程是否存在,並重新啟動
#!/bin/bash # #調用關閉jboss進程腳本 stopMethodServer.sh #列印出當前的jboss進程:grep jboss查詢的jboss進程,grep -v "grep" 去掉grep進程 jmsThread=`ps -ef | grep gdms | grep jboss | grep -v "grep"` echo $jmsThread #查詢jboss進程個數:wc -l 返回行數 count=`ps -ef | grep gdms | grep jboss | grep -v "grep" | wc -l` echo $count sec=7 #開始一個循環,以判斷進程是否關閉 for var in 1 2 do if [ $count -gt 0 ]; then #若進程還未關閉,則腳本sleep幾秒 echo sleep $sec second the $var time, the JMS thread is still alive sleep $sec else #若進程已經關閉,則跳出循環 echo "break" break fi done #if [ $count -eq 0 ]; then # echo "nohup startMethodServer.sh &" # nohup startMethodServer.sh & #else # echo "It's better to check the thread!!!" #fi #調用啟動腳本 nohup startMethodServer.sh &
E. 如何判斷服務是否運行的shell腳本
1 、可以通過ps命令獲取所有的進程,然後通過awk命令提取進程名,再用grep提取相應的進程名即可。
2、參考代碼如下:
ps-aux|awk'{print$11}'|grep"^$1">/dev/nullcase$?in0)echo"findprocess$1";;1)echo"$1isnotrunning";;*)echo"unknowerror"esac3、運行結果如下
F. shell腳本怎麼判斷進程假死
得確認假死的所有狀態,程序才可以判斷,否則容易誤判
G. 如何用Shell腳本判斷一個進程是否在運行
if [ `ps aux|grep nginx|grep -v grep|wc -l` -gt 0 ];then
echo nginx is not running
fi
H. 寫一個shell腳本,每隔10秒,檢查當前系統中有沒有進程名字為"firefox"的進
while :;do ps aux |grep firefox | grep -v grep; sleep 10;done
I. shell腳本檢查進程是否存在不存在發送郵件
前幾天開始跑一份數據名單,名單需要提供用戶名、是否有手機號、是否有郵箱,用戶名單我輕易的獲取到了,但是,用戶名單有2000w之多,並且去檢測用戶是否有手機號、是否有郵箱必須得通過一個對外開放的安全介面一個一個用戶去請求,然後分析返回值才能知道。 下面是我處理的方案: 1、將2000w名單保存到臨時數據表 2、用PHP程序每次從該表獲取500個用戶,檢測完後生成SQL update原紀錄 3、為了防止PHP程序突然斷掉,用shell腳本每隔1分鍾檢測,PHP掛掉了則重啟 我使用shell腳本作為守護進程的原因是,手機與郵箱的檢測介面速度慢,不可能在1~2天將2000w用戶檢測完。 方案詳細: 1、臨時保存用戶名單表users,表結構如下: 復制代碼 代碼如下: CREATE TABLE `users` ( `account` varchar(50) COMMENT '用戶名', `has_phone` tinyint(3) unsigned NOT NULL default '0' COMMENT '是否有手機號', `has_email` tinyint(3) unsigned NOT NULL default '0' COMMENT '是否有郵箱', `flag` tinyint(3) unsigned NOT NULL default '0' COMMENT '標志位', PRIMARY KEY (`account`), KEY `flag` (`flag`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='名單表'; 我先將2000多w用戶名導入到這個臨時表,has_phone與has_email這二個欄位默認都是0(沒有),標志位flag說明該用戶是否已經檢測完。 下面是一部分表數據: 9873aaa,0,0,0 adddwwwd876222,0,0,0 testalexlee,0,0,0 codejia,0,0,1 haohdouywaa21,1,1,1 9873aaa,0,1,1 adddwwwd876222,1,0,1 說在最後:以上用戶名單數據只是舉個栗子,不要太認真,2000w數據,我估計要跑一段時間了,因為檢測介面比較慢,介面在接到請求後還要連表,查表,再返回。其實,最好的方法還是直接從介面請求的表拉一份名單出來,再用shell命令處理下很快就有結果了,可是在公司就是這樣,有些東西不開放的,你懂的~~~
J. 如何編寫一個shell腳本實時的查看某個進程
如果進程名字是復雜且唯一的那隻需要使用grep做簡單匹配,使用下面命令:
ps-ef|grep-vgrep|grep'進程名字'&&echo'正在運行'||echo'已停止運行'