1. 程式人生 > >Linux下監控某個進程

Linux下監控某個進程

條件 text detach 分享圖片 rsync 多個 sta 正在 控制

應用場景:經常發生某個進程宕機,例如Rsync服務

技術分享圖片

實驗環境:CentOS7

實驗腳本:

#!/bin/bash
status=$(ps -aux | grep "rsync --daemon" | grep -v "grep" | wc -l)
if [ $status -eq 0 ];
then
systemctl restart rsyncd.service
else
exit 0;
fi

腳本分析:

步驟一: ps -aux | grep "rsync"


發現有多個rsync進程,於是再次刪選過濾,找出需要的進程"/usr/bin/rsync --daemon --no-detach"

技術分享圖片

步驟二:ps -aux | grep "rsync --daemon"

發現找到了需要的rsync進程,但是多個一個“grep”篩選進程,於是再次使用grep -v過濾

技術分享圖片

步驟三: ps -aux | grep "rsync --daemon" | grep -v "grep"

終於找到了需要的rsync進程,接下來就需要結合wc計數命令來做判斷條件,再與流程控制語句if來編寫腳本

技術分享圖片

步驟四:ps -aux | grep "rsync --daemon" | grep -v "grep" | wc -l

當rsync服務正在啟動時,得到的結果是1,當rsync服務停止時,得到的結果是0

技術分享圖片

技術分享圖片




Linux下監控某個進程