分页: 1 / 1

求一个在某个程序结束后自动关机的脚本

发表于 : 2009-02-06 20:51
sivaj
如题
比如运行了 sudo apt-get dist-upgrade -d -y , 然后想去睡觉,但是又希望在apt-get 完成下载后自动关机,我尝试了下面这个,但是有问题
------------------------------------------
#!/bin/bash
var=`pgrep apt-get`
if [ "$var" = "" ]; then
sudo shutdown -h now
else
sleep 20; $0
fi
________________________
将以上存入 autoshutdown.sh 运行之后,每隔20秒就会产生一个新的autoshutdown.sh, 不用多久进程表里有数不清的autoshutdown.sh进程,怎样写可以在新的产生之后,老的可以被杀掉

Re: 求一个在某个程序结束后自动关机的脚本

发表于 : 2009-02-06 21:19
xiooli

代码: 全选

#!/bin/bash
while :;do
  if [ "`pgrep apt-get 2>/dev/null`" ];then
    sleep 20
  else
    sudo shutdown -h now    
  fi
done

Re: 求一个在某个程序结束后自动关机的脚本

发表于 : 2009-02-06 22:16
sivaj
谢谢!

Re: 求一个在某个程序结束后自动关机的脚本

发表于 : 2009-02-06 23:16
aerofox
最简单的是

代码: 全选

sudo apt-get dist-upgrade -d -y; sudo shutdown -h now
或者

代码: 全选

sudo sh -c "apt-get dist-upgrade -d -y; shutdown -h now"
后一个适合 sudo 需要输入密码的情况。

Re: 求一个在某个程序结束后自动关机的脚本

发表于 : 2009-02-07 22:31
sivaj
楼上的好!

”sh -c“ 选项是什么呢 这样做了分号后面的sudo命令就不会因为一直等待输入密码而关不了机吗

Re: 求一个在某个程序结束后自动关机的脚本

发表于 : 2009-02-08 14:19
aerofox
不是分号后面的 sudo 命令,是分号后面的命令。
这里只执行一次 sudo,sudo 来执行 sh,sh 执行 -c 后面指定的命令,而这里 -c 后的参数是由分号连接的两条 shell 命令。

Re: 求一个在某个程序结束后自动关机的脚本

发表于 : 2009-02-08 18:49
lerosua
不错,有很多好的技巧学到了

Re: 求一个在某个程序结束后自动关机的脚本

发表于 : 2009-02-08 21:51
poweroff
#!/bin/sh
apt-get update
poweroff

-------------
sudo xx.sh

Re: 求一个在某个程序结束后自动关机的脚本

发表于 : 2009-02-08 22:23
sivaj
谢谢 !