ARM-Linux利用自動監控進程並重啓(支持crontab/不支持crontab)

①arm如何移植系統裏面可以利用crontab來實現進程的監控與重啓。crontab命令用於週期性被執行命令,指令被守護進程激活。

1、檢查是否安裝crontab

rpm -qa | grep crontab

2、查看服務是否開啓定時任務

service crond status

出現 Active: active(running)即,已開啓任務。

service crond start  開啓服務

service crond stop 關閉服務

service crond restart 重啓服務

service crond reload 重新載入配置

3、編輯需要監控並重啓進程腳本bindmonitor.sh

#! /bin/sh

host_dir=`echo ~`                                   # 當前用戶根目錄
proc_name="myproc"                                  # 進程名
file_name="bindmonitor.log"                         # 日誌文件
pid=0

proc_num()                                              # 計算進程數
{
    num=`ps -ef | grep $proc_name | grep -v grep | wc -l`
    return $num
}

proc_id()                                               # 進程號
{
    pid=`ps -ef | grep $proc_name | grep -v grep | awk '{print $2}'`
}

proc_num
number=$?
if [ $number -eq 0 ]                                    # 判斷進程是否存在
then 
    ~/myproc &                                          # 重啓進程的命令,請相應修改
    proc_id                                             # 獲取新進程號
    echo ${pid}, `date` >> $file_name                   # 將新進程號和重啓時間記錄
fi

其中,myproc是我在arm中跑的qt程序,個人依據自己的監控進程重啓步驟,來決定是不是添加配置文件。

4、編輯crontab來激活shell文件

crontab -e

vim編輯來添加任務即可

*/1 * * * * /root/bindmonitor.sh     # 每分鐘運行一遍bindmonitor.sh腳本

Tips:crontab的格式

  *           *        *        *        *           command

minute   hour    day   month   week      command

分          時         天      月        星期       命令

星號(*):代表每的意思,例如month字段如果是星號,則表示每月都執行該命令操作。

逗號(,):表示分隔時段的意思,例如,“1,3,5,7,9”。

中槓(-):表示一個時間範圍,例如“2-6”表示“2,3,4,5,6”。

正斜線(/):可以用正斜線指定時間的間隔頻率,例如“0-23/1”表示每一個小時執行一次。同時正斜線可以和星號一起使用,例如*/10,如果用在minute字段,表示每十分鐘執行一次。

例:

30 3,12 * * *  command   ##每月每天3:30和12:30分別執行command

30 8-16/2 * * *  command   ##每月每天8點-16點每隔2個小時的每30分鐘執行command

5、查看定時任務及執行情況

crontab -l        #列出當前用戶定時任務
crontab -r        #刪除當前用戶定時任務
cat /var/spool/mail/{username}  #查看crontab的執行情況,username爲當前用戶名

6、手動kill進程查看日誌

killall -9 myproc

因爲我的shell是一分鐘的週期,一分鐘後可以查看bindmonitor.log中有記錄進程重啓的記錄時間戳。

附參考鏈接:

linux進程監控與自動重啓的簡單實現方法

Linux 定時任務crontab_014

 

②如果arm裏面不支持crontab來實現進程的監控

*****稍等,測試中****

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章