команды при выключении Ubuntu - PullRequest
1 голос
/ 16 декабря 2011

Как выполнить одну или несколько команд и сценариев при завершении работы Ubuntu? Есть ли какие-либо сценарии, такие как / etc / profile и ~ / .bashrc при запуске системы? Я знаю, что у linux shutdown может быть много причин, помимо обращения к сигналу kill, где я могу получить по этой причине?

Ответы [ 3 ]

3 голосов
/ 16 декабря 2011

Есть ли какие-либо сценарии, такие как / etc / profile и ~ / .bashrc при запуске системы?

Сценарии SysV Init (/etc/init.d/*) вызываются при запуске. Простой / простой способ вызвать некоторые действия при запуске системы - поместить их в /etc/init.d/local (/etc/rc.local для некоторых других дистрибутивов). Смотрите также: RcLocalHowto .

Как выполнить одну или несколько команд и сценариев при завершении работы Ubuntu?

Звучит так, как будто вы хотите создать настоящий скрипт инициализации, который получает start ed при вводе уровней запуска X-Z и stop ped при выходе из них. Смотрите также: UbuntuBootupHowto .

Я знаю, что у выключения linux может быть много причин, помимо того, что я могу получить сигнал уничтожения, где я могу получить по этой причине?

Делать это неинтерактивно не просто. Вы можете просматривать системные журналы, просматривая указания от shutdown.

2 голосов
/ 21 июля 2012

Вы можете поместить свой скрипт в /etc/rc0.d (для остановки) и /etc/rc6.d/ (для перезагрузки). Убедитесь, что у скрипта есть разрешение на выполнение.

Есть разные уровни запуска:
* 0 Остановка системы
* 1 однопользовательский
* 2 Полный многопользовательский режим (по умолчанию)
* 3-5 То же, что 2
* 6 Перезагрузка системы

Уровень выполнения 0 является условием остановки системы. Когда уровень выполнения 0 достигнут, все сценарии в /etc/rc0.d исполняются.

Уровень выполнения 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

Веселись!

2 голосов
/ 16 декабря 2011

Существует файл ~ / .bash_logout, который запускается при выходе из Ubuntu 11.04 Я не уверен, но предположим, что есть подобный скрипт в 10.04 Надеюсь, это поможет.

...