ubuntu shutdown的命令

时间:2011-12-16 03:29:18

标签: linux ubuntu-10.04

如何在ubuntu关闭时执行一个或多个命令和脚本?系统启动时是否有/ etc / profile和〜/ .bashrc这样的脚本? 我知道linux关闭可能有很多原因,除了处理kill信号之外,我可以在哪里得到这个原因?

3 个答案:

答案 0 :(得分:3)

  

在系统启动时是否有像/ etc / profile和〜/ .bashrc这样的脚本?

在启动时调用SysV Init脚本(/etc/init.d/*)。在系统启动时调用某些活动的一个简单/简单的方法是将其放入/etc/init.d/local/etc/rc.local用于其他一些发行版)。另见:RcLocalHowto

  

如何在ubuntu关闭时执行一个或多个命令和脚本?

听起来好像你想创建一个真正的初始化脚本,在进入运行级别X-Z时会start,并且在退出它们时会stop。另见:UbuntuBootupHowto

  

我知道linux关闭可能有很多原因,除了处理kill信号之外,我可以在哪里得到这个原因?

非交互式地做这件事并不简单。您可以查看系统日志,查找来自shutdown的指示。

答案 1 :(得分:2)

当您注销Ubuntu 11.04时,会执行〜/ .bash_logout文件 我不确定,但假设10.04中有类似的脚本 希望这会有所帮助。

答案 2 :(得分:2)

您可以将脚本放在/etc/rc0.d(用于暂停)和/etc/rc6.d/(用于重启)中。确保脚本具有可执行权限。

有不同的运行级别:
* 0系统暂停
* 1单用户
* 2全多用户模式(默认)
* 3-5与2
相同 * 6系统重启

运行级别0是系统暂停条件。当达到运行级别0时,/ etc / rc0.d中的所有脚本都是exectute。

运行级别6用于表示系统重启。这与运行级别0相同,只是在序列结束时发出重新启动而不是关闭电源。

如果要在休眠或睡眠时执行脚本,请将脚本放在/etc/pm/sleep.d /

这是一个脚本示例:

 #!/bin/sh

WLANSTATUS=`cat /sys/class/ieee80211/phy*/rfkill*/state`
test -z $WLANSTATUS && exit 1

case $1 in
    hibernate)
      # Do something before hibernate
        ;;
    suspend)
      # Do something before sleep
        ;;
    thaw)
      # Do something after hibernate
        ;;
    resume)
      # Do something after sleep
    if [ $WLANSTATUS = 0 ]; then
        echo 0 > /sys/devices/platform/asus_laptop/wlan    
    elif [ $WLANSTATUS = 1 ]; then
        echo 1 > /sys/devices/platform/asus_laptop/wlan
    fi
        ;;
    *)  echo "somebody is calling me totally wrong."
        ;;
esac

玩得开心!