用Bash写的简易进程监视 重启批处理

最近挂代理,老是挂掉,于是花了点时间,写了一个批处理。

每隔10秒检查一下命令是否启动,如果没有这个进程,重启进程。

凑合用用,

如果内部锁死应该还是没用,如果进程掉了,可以使用

废话不多,直接放代码

#!/bin/sh

	proc_name='命令'

	#获取进程个数			
	proc_num()
	{
		num=`ps -ef | grep "${*}" | grep -v grep | wc -l`
		return $num
	}
	#根据返回的进程数,判断时候要重启
	chk_restart()
	{
		proc_num $1
		procnum=$?

		if [ $procnum -eq 0 ]
		then
			#启动命令
			echo `date +%Y-%m-%d` `date +%H:%M:%S` "ReStart..." $1
  		eval $1 "> 1.log 2>&1 &"
  	else
  		echo `date +%Y-%m-%d` `date +%H:%M:%S` "Running..." $1
  	fi
		
	}
	
	
	while true
	do

		chk_restart "$proc_name"
		#每隔多少秒
		sleep 10
	
	done