分页: 1 / 1

ps -e|grep axel > /dev/null

发表于 : 2012-11-11 0:02
auv1107
while true
do
ps -e|grep axel > /dev/null
if [ $? == 1]
then
shutdown -h now
fi
done

axel是我的一个下载进程,我用这个脚本来自动关机。
想着shutdown后程序自然就结束了,也没管while的事。可是关机时屏幕一直卡在字符界面不动了。最后只好强制关闭。

现在躺在床上,我就在想到底是不是shutdown被多次执行的原因。
大家有什么看法?
Sent from my M9 using Tapatalk

Re: ps -e|grep axel > /dev/null

发表于 : 2012-11-11 10:50
132811
[ $? == 1]
1后面怎么没有空格?

应该是axel没有结束吧!加入sleep和break吧!

代码: 全选

while true
do
    ps -e|grep axel > /dev/null
    if [ $? == 1 ]
    then
        echo 'shutdown now!'
        #shutdown -h now
        break
    else
       echo 'sleep 1'
       sleep 1
    fi
done

Re: ps -e|grep axel > /dev/null

发表于 : 2012-11-11 11:42
funicorn

代码: 全选

while true
do
sleep 10
pgrep axel > /dev/null || break
done
shutdown -h now

Re: ps -e|grep axel > /dev/null

发表于 : 2012-11-11 17:49
niejieqiang
用halt 关机
;-)

Re: ps -e|grep axel > /dev/null

发表于 : 2012-11-11 17:51
eexpress
你不如axel xxxx; echo xxx|sudo -S poweroff
何必写这么复杂,判断啥进程。

Re: ps -e|grep axel > /dev/null

发表于 : 2012-11-12 8:42
auv1107
132811 写了:
[ $? == 1]
1后面怎么没有空格?

应该是axel没有结束吧!加入sleep和break吧!

代码: 全选

while true
do
    ps -e|grep axel > /dev/null
    if [ $? == 1 ]
    then
        echo 'shutdown now!'
        #shutdown -h now
        break
    else
       echo 'sleep 1'
       sleep 1
    fi
done

我好像没有表达清楚, 程序正常执行并自动关机了。 但是,关机时卡在某屏不动了。就像12.04里经常出现的关不掉机的那种情况。

Re: ps -e|grep axel > /dev/null

发表于 : 2012-11-12 23:31
q_yangguangyouzi
以前用halt,会出现上述情况,后用poweroff很顺利。

Re: ps -e|grep axel > /dev/null

发表于 : 2012-11-16 23:01
132811
那你直接输入关机命令也会卡屏吗?
查下日志呗。

Re: ps -e|grep axel > /dev/null

发表于 : 2012-11-20 14:17
Methuselar
好奇怪的需求... 需要判断返回值的用&& 或者 || ; 不需要的像阿姨那样;都可以,何必呢...