使用shell脚本自动监控后台进程,并能自动重启

先建一个shell脚本proxy.sh:

#!/bin/sh
while :
do
  javapro=$(ps -ef |grep "D8888" |grep -v "grep")
  if [ ! "$javapro" ] ; then
        # do something
        # echo "down, restart it."
        ~/proxy_expect
  fi
  sleep 300

done

脚本是一个死循环,每隔5分钟会重新检测一下java的进程,如果找不到,就使用命令重启,或调用其他脚本重启。

如我这里由于要使用ssh来启动一个代理,所以写了一个expect交互脚本:

#!/usr/bin/expect
set password "password"
spawn ssh -2 -Nf -g -D8888 
expect "password:" {send "$password\r"}

expect eof

最后再启动shell脚本:sh proxy.sh &

 

你可能感兴趣的:(shell,expect,监控)