蜗牛的壳 - shell
type: channel
link: https://snailium.net/tag/shell/
items: Bash编程笔记：swatchdog for WD-MBWE

Bash编程笔记：swatchdog for WD-MBWE
type: item
date: 2008-03-01T21:23:55-05:00
description: Linux BusyBox 果真是个强大的东西。只要想做，什么都能做出来。正好最近正愁 My Book 的服务总是莫名其妙的挂掉，搞的在单位都无法访问文件。操起简单的 vi，开始制作 Bash Watchdog。（之所以没用 Perl，是考虑到 Perl 在预编译的时候比较耗费系统资源）经过三个小时的现学现卖，雏形版的 Bash Watchdog - swatchdog 出炉。[code lang="bash" title="/usr/sbin/swatchdog"] #! /bin/bash # # Watchdog for system service #while [ 0 ] do for PROC do PID=`ps -aef | grep -v grep | grep -v swatchdog | grep "$PROC"` if [ -z "$PID" ] ; then TIME=`date "+%Y-%m-%d %H:%M:%S %Z"` echo "[$TIME] $PROC is not found, rebooting..." >> /etc/swatchdog/reboot.log reboot exit 1; fi done sleep 600 doneexit 0; [/code]原理很简单，无限循环，检查命令行传入的进程是否存在。如果不存在则重启。使用也很简单。[code lang="bash"] swatchdog cvm transmission amuled [/code]自动侦测 cvm（mionet）、transmission 和 amuled。