目的: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/下建立cr