Как отключить Ubuntu после потери питания? [Дубликат]

5

Мой проект требует включения и выключения источника питания для ноутбука.

Есть ли способ правильно отключить Ubuntu, когда потеряна внешняя мощность? Он запустит выключение на своей внутренней батарее.

    
задан BDMan32 10.10.2014 в 14:01
источник

3 ответа

6

Попробуйте проверить команду on_ac_power . От man on_ac_power :

NAME
       on_ac_power - test whether computer is running on AC power

SYNOPSIS
       on_ac_power

DESCRIPTION
       on_ac_power  checks  whether  the  system  is  running on AC power (i.e., mains power) as opposed to battery
       power.

OPTIONS
       None.

EXIT STATUS
       0 (true)  System is on mains power
       1 (false) System is not on mains power
       255 (false)    Power status could not be determined
if on_ac_power; then 
    echo "You are on AC-Power" # System is on mains power
 else
    echo "Power Lost"          # System is not on mains power
fi

Вам нужно проверить статус AC-Power в каждый промежуток времени Х. Это самый простой способ запустить его в фоновом режиме внутри цикла while:

while true
 do
    if on_ac_power; then 
        echo "You are on AC-Power" # System is on main power
     else
        echo "Power Lost"          # System is not on main power
    fi
    sleep [Seconds]
 done

Сохраните сценарий ( ChechMainPWR.sh ), и если вы хотите запустить сценарий при запуске, добавьте строку в /etc/rc.local , чтобы вызвать ваш скрипт ( ChechMainPWR.sh ) + "& amp;" чтобы он вышел. Как этот

sh /home/USERNAME/ChechMainPWR.sh $

Перезагрузите и просмотрите изменения.

BONUS

Если вы хотите увидеть предупреждение, когда оно потеряно или не подключено к уведомлению на рабочем столе, вы можете использовать программу notify-send .

notify-send "Main Power Lot!" "System is now shutting down"

Подробнее см. в man notify-send .

NAME
       notify-send - a program to send desktop notifications

SYNOPSIS
       notify-send [OPTIONS] <summary> [body]

DESCRIPTION
       With  notify-send you can sends desktop notifications to the user via a notification daemon from the command
       line.  These notifications can be used to inform the user about an event or display some form of information
       without getting in the user's way.

Тогда окончательный скрипт будет выглядеть следующим образом:

Окончательный сценарий

while true
 do
    if ! on_ac_power; then    # System is not on main power
        notify-send "Main Power Lot!" "System is going down after 10 seconds"
        sleep 10
        echo YOUR_PASSWORD | sudo -kS  shutdown -h now
        #####^^^^^^^^^^^^^ VERY VERY VERY insecure!   ##########
    fi
    sleep 300 # check main power status every 5 minutes
 done

Предупреждение: Работает echo YOUR_PASSWORD | sudo -kS shutdown -h now , но она крайне небезопасна, так как ваш пароль написан в вашей истории и может также отображаться для других пользователей через список процессов.

Тогда альтернативное решение; Вы можете настроить свою систему на то, что sudo someCommand не требует пароля (в моем случае для sudo shutdown ). Для этого запустите sudo visudo и добавьте следующую строку в END в открывшемся файле:

Your_USERNAME  ALL=NOPASSWD: /sbin/shutdown

Затем выйдите из редактора и сохраните его (CTRL + x).

Теперь вы можете использовать команду shutdown из командной строки или скрипта без пароля.

Итак, сценарий будет таким:

while true
 do
    if ! on_ac_power; then  #your system is not on AC-Power
        notify-send "Main Power Lost!" "System is going down after 10 seconds"
        sleep 10
        sudo shutdown -h now  # System is not on mains power
    fi
    sleep 300 # check main power status every 5 minutes
 done

Внешние ссылки:

Как выполнять определенные команды sudo без пароль?
Как перезапустить / выключить терминал?     

ответ дан αғsнιη 10.10.2014 в 17:53
0

В настройках управления питанием вы можете установить, что произойдет, когда критическая мощность аккумулятора .

Установите там выключить :

    
ответ дан Frantique 10.10.2014 в 14:05
-1
  

Перейдите к системным настройкам, щелкнув значок настроек в правом верхнем углу рабочего стола и выбрав «системные настройки ...»

     

В системной настройке pancel Cick on «power», и там вы можете увидеть опцию «когда мощность критически низка по умолчанию черным цветом, выберите ее и выберите« выключение питания »в выпадающем меню.

    

ответ дан Sapnesh Naik 10.10.2014 в 14:27