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来实现进程的监控

*****稍等,测试中****

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