Chinaunix首页 | 论坛 | 博客
  • 博客访问: 126005
  • 博文数量: 38
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 260
  • 用 户 组: 普通用户
  • 注册时间: 2014-07-30 00:46
文章分类
文章存档

2019年(1)

2018年(6)

2017年(6)

2016年(15)

2015年(10)

我的朋友

分类: 嵌入式

2015-04-24 18:02:53

目的:linux 下服务器程序会因为各种原因dump掉,为确保项目中用到的snmpd进程稳定运行,通过crond服务简单实现的进程监控和重启功能。

实现原理:由定时任务crontab调用脚本,脚本用ps检查进程是否存在,如果不存在则重启并写入日志。

  
1. 嵌入式平台上启动crond服务 
   crond 是linux用来定期执行程序的命令,crond命令每分钟会定期检查是否有要执行的工作,如果有要执行的工作便会自动执行该工作
    crontab是用来让使用者在固定时间或固定间隔执行程序之用,换句话说,也就是类似使用者的时程表。

   在嵌入式平台上首次执行时经常会碰到这种错误:

   crontab: chdir(/var/spool/cron/crontabs): No such file or directory

    
  (1)创建上述目录

         #mkdir -p /var/spool/cron/crontabs

  (2)crontabs编辑要执行的任务:

         #crontabs -e

         */5 * * * * /home/resnmpd.sh >/dev/null 2>&1 每隔5分钟执行resnmpd.sh,不打印任何信息
         ----关于的使用方法参考百度百科

  (3)执行busybox crond命令

        #busybox crond

    此时/var/spool/cron/crontabs下有一个跟用户名相同的文件,保存着要执行的任务。
 

由于var目录下的内容实际为内存虚拟的,并不存在与flash之中,重启后消失。为保证系统每次启动自动执行,需执行以下步骤:

首先在开发板/etc/crontabs/下建立crontab的配置文件root:

*/5 * * * * /home/resnmpd.sh >/dev/null 2>&1   //每5分钟执行resnmpd.sh脚本一次

然后在/etc/init.d/rcS修改,让开发板每次启动之后自动执行:

mkdir -p /var/spool/cron/crontabs
cp -p /etc/crontabs/root /var/spool/cron/crontabs

chmod 777 /var/spool/cron/crontabs/root

busybox crond
echo "cp cron config file to /var/spool/cron/crontabs"

即新建crontab配置文件目录,然后将配置文件按拷贝至新建目录下,一定要执行chmod命令,以后只需要修改root中的内容就可以改变crontab配置,不过临时修改配置还是需要去/var/spool/cron/crontabs内的root文件,永久修改是改/etc/crontabs/root,重启生效。

2. 简单实现进程监控与重启脚本















 

阅读(5169) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:iptables详解

给主人留下些什么吧!~~