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

sh/bash/dash/ksh/zsh等Shell脚本
回复
sivaj
帖子: 541
注册时间: 2007-05-19 16:36

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

#1

帖子 sivaj » 2009-02-06 20:51

如题
比如运行了 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进程,怎样写可以在新的产生之后,老的可以被杀掉
头像
xiooli
帖子: 6956
注册时间: 2007-11-19 21:51
来自: 成都
联系:

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

#2

帖子 xiooli » 2009-02-06 21:19

代码: 全选

#!/bin/bash
while :;do
  if [ "`pgrep apt-get 2>/dev/null`" ];then
    sleep 20
  else
    sudo shutdown -h now    
  fi
done
sivaj
帖子: 541
注册时间: 2007-05-19 16:36

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

#3

帖子 sivaj » 2009-02-06 22:16

谢谢!
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

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

#4

帖子 aerofox » 2009-02-06 23:16

最简单的是

代码: 全选

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

代码: 全选

sudo sh -c "apt-get dist-upgrade -d -y; shutdown -h now"
后一个适合 sudo 需要输入密码的情况。
sivaj
帖子: 541
注册时间: 2007-05-19 16:36

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

#5

帖子 sivaj » 2009-02-07 22:31

楼上的好!

”sh -c“ 选项是什么呢 这样做了分号后面的sudo命令就不会因为一直等待输入密码而关不了机吗
aerofox
帖子: 1453
注册时间: 2008-05-24 8:30

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

#6

帖子 aerofox » 2009-02-08 14:19

不是分号后面的 sudo 命令,是分号后面的命令。
这里只执行一次 sudo,sudo 来执行 sh,sh 执行 -c 后面指定的命令,而这里 -c 后的参数是由分号连接的两条 shell 命令。
头像
lerosua
论坛版主
帖子: 8455
注册时间: 2007-11-29 9:41
联系:

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

#7

帖子 lerosua » 2009-02-08 18:49

不错,有很多好的技巧学到了
头像
poweroff
帖子: 395
注册时间: 2008-12-13 15:03

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

#8

帖子 poweroff » 2009-02-08 21:51

#!/bin/sh
apt-get update
poweroff

-------------
sudo xx.sh
一条狗的马甲!
对不起,我承认我是一只穿着马甲的狗!
sivaj
帖子: 541
注册时间: 2007-05-19 16:36

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

#9

帖子 sivaj » 2009-02-08 22:23

谢谢 !
回复