在大量服务器集群的环境下,有时某台服务器服务异常退出,导致一些访问请求出错。需要对当前的运行的服务进行检测,如有退出就自动启动。然而cron任务最小频率在分钟级别,这显然有点长。下面这个脚本是在秒级对服务进行健康检测。 [codesyntax lang="bash"] #!/bin/bash i=0 interval=3 count=$[60/$interval] # $[]只能进行整数运算 while [ $i -lt $count ] do nginx_arr=(`pgrep nginx`) if [ ${#nginx_arr[@]} == 0 ]; then nginx -c /usr/local/nginx/etc/nginx.conf >/dev/null 2>&1 fi ((i++)) sleep $interval done
[/codesyntax]
转载于:https://my.oschina.net/766/blog/211527