先建一个shell脚本proxy.sh:java
#!/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的进程,若是找不到,就使用命令重启,或调用其余脚本重启。shell
如我这里因为要使用ssh来启动一个代理,因此写了一个expect交互脚本:ssh
#!/usr/bin/expect set password "password" spawn ssh -2 -Nf -g -D8888 expect "password:" {send "$password\r"} expect eof
最后再启动shell脚本:sh proxy.sh &spa