还是记下来比较好。在 Bash 中启动一个进程，在进程结束后可以通过 echo $? 来查看程序的运行情况。程序的错误代码（返回码）可以通过 exit(error_code); 来指定，或是系统定义的代码。一般来说，0 代表成功（无错误）。Linux 的 error code 可以查看 /usr/include/linux/errno.h。
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。