Shell脚本实现温和方式重启Centos系统
主要目的是用于重启后台比较重要的进程,如果采用killall-9强制kill掉,可能会引起问题。比如数据库进程。代码如下:
#!/bin/sh if[-z"$1"];then /bin/echo"$0<commandline>" exit1 fi
param='' list='23456789' foriin$list;do evalp='$'$i if[-z$p];then break fi param="$param$p" done
if[-f/bin/awk];then AWK=/bin/awk else AWK=/usr/bin/awk fi
if[-f/bin/grep];then GREP=/bin/grep else GREP=/usr/bin/grep fi
program=`/bin/echo$1|$AWK-F'/''{print$NF;}'` count=`/bin/psauxww|$GREP-w$program|$GREP-vgrep|/usr/bin/wc-l` if[$count-gt0];then i=0 /bin/echo"stopping$program..." while[1-eq1];do if[$i-eq0];then /usr/bin/killall$program else /usr/bin/killall$program>/dev/null2>&1 fi
if[$?-ne0];then break fi
/usr/bin/printf. /bin/sleep1 leti=$i+1 done fi
/bin/echo"" count=`/bin/psauxww|$GREP-w$program|$GREP-vgrep|$GREP-v$0|/usr/bin/wc-l` if[$count-eq0];then /bin/echo"starting$program..." exec$1$param else /bin/psauxww|$GREP-w$program|$GREP-vgrep|$GREP-v$0 /bin/echo"alreadyrunning$programcount:$count,restartaborted!" fi