先建一个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 &