Linux下的程序重启脚本

写了个简单的程序重启的脚本,循环判断mec_x86和l3fwd两个进程是否存在,如果有一个不存在了就进行重启:

#!/bin/bash
while :
do
    processAPP=$(ps -ef | grep "mec_x86" | grep -v "grep" | wc -l)
    processDPDK=$(ps -ef | grep "l3fwd" | grep -v "grep" | wc -l)
    if [ $processAPP -eq 0 ];then
        ./stop.sh &
        sleep 10
        ./start.sh &
    elif [ $processDPDK -eq 0 ];then
			./stop.sh &
			sleep 10
	        ./start.sh &  
    fi 
    sleep 5m
done

记录一下用的命令:
1.#!/bin/bash
shell脚本都要有的,注意不能少了bin前面的/,否则会有这样的报错:
在这里插入图片描述
2.while :
do

done
重复进行循环,注意while和:之间有空格;
3.ps -ef | grep “mec_x86” | grep -v “grep” | wc -l
查询mec_x86进程的个数,其中grep -v "grep"的作用是去除grep进程,如下图所示,添加grep -v "grep"后可去除grep查询时产生的进程.wc -l是输出文件的行数.
Linux下的程序重启脚本_第1张图片
额外知识点:

awk '{print $2}'

此命令是用于一行一行的读取指定的文件, 以空格作为分隔符,打印第二个字段.如果将这个指令改为:

ps -ef | grep "mec_x86" | grep -v "grep" | awk '{print 2}'

那么这段命令就可以取出mec_x86进程的序号:
在这里插入图片描述
4.processAPP=$(…)
取出括号中的数值并赋给processAPP
5. if [ … ];then

elif [ … ];then

fi
if语句,具体用法转载了一篇文章.

你可能感兴趣的:(工作遇到的问题)