一个脚本
不切换用户执行命令、脚本
cat chk_eth.sh #!/bin/bas #time:2018/1/24 PORT_ETH=8545 PORT=`ps -ef | grep eth | grep '8545' | grep -v grep |wc -l` IP=`ip a | sed -n '7p' | awk -F '[ /]+' '{print $3}'` PID=`ps -ef | grep eth | grep -E "/home/deploy/" | awk -F "[ ]+" '{print $2}'` kill -9 $PID #PORT_ETH=`ps -ef | grep eth | grep '8545' | awk -F '[ ]+' '{print $11}'` #等于 0 ETH进程挂掉,等于 1 ETH进程存在 if [ $PORT -eq '1' ];then echo "ETH存在" else echo "ETH死了,需要启动" #测试 # su - deploy -c "/bin/pwd" \ # su - deploy -c 'cd /home/deploy/geth-linux-amd64-1.7.0-6c6c7b2a/ && \ # nohup ./geth --rpc --rpcport ${PORT_ETH} --rpcaddr=$IP &' su - deploy -c -s "cd /home/deploy/geth-linux-amd64-1.7.0-6c6c7b2a/ && \ nohup ./geth --rpc --rpcport $PORT_ETH --rpcaddr=$IP &" PID=`ps -ef | grep eth | grep -E "/home/deploy/" | awk -F "[ ]+" '{print $2}'` kill -9 $PID exit 1 fi if [ $PORT -eq '0' ];then echo "启动失败" else echo "启动成功" exit 2 fi

浙公网安备 33010602011771号