需求为按指定用户执行些服务的启动命令,不能重服启动。
其实很简单只要把这些命令穿起来就行了,如果多,可以也可用循环。另外加了一个检测进程是否已经启动的功能,如果已启动退出。我这里用的是#ps aux|grep 的方法,如果是标准的服务用pgrep命令比较好,得到PID可以kill 掉它。我这里不是像HTTP 之类的标准的服务,所以在pgrep 后面跟参数不准确,用不了。这里只说这两个小函数。
还有个根据$?判断是否执行成功提示的小函数,两个相当于的IF语句的语法描述了。
便用方法 fruntest 参数-可以判断进程的描述字段,可以在ps aux中唯一识别进程就可以了,PRONU跟据 查找出的结果 大于1就认为是进程存在,提示退出 返回值1,不存在继续了。
function fruntest ()
{
PRONU=`ps aux |grep $1|wc -l`
if [ $PRONU -gt 1 ]
then
echo "$1 progress is running,no need for start program!! This script quit..."
echo "$(date +%H:%M:%S) $1 progress is running,no need for start program!! This script quit...">> $log;
exit 1;
else
continue;
fi
}
function flog ()
{
if [ $? -eq 0 ]
then
echo "$(date +%H:%M:%S) $1 start OK">> $log;
else
echo "$(date +%H:%M:%S) $1 start fail">>$log;
fi
}