Как временно отключить сон и спящий режим из командной строки

Похоже, что существует множество способов, которыми настройки Ubuntu можно постоянно манипулировать для сна, когда это необходимо, при условии соблюдения предопределенных условий. Однако это более постоянные решения, в которых не учитываются редкие задачи, для которых может потребоваться временно перейти к стандартной политике. Проблема, с которой я сталкиваюсь, заключается в том, что у меня есть очень долго работающий скрипт для создания резервных копий, и я не хочу, чтобы компьютер спал или находился в спящем режиме, пока этот конкретный процесс выполняется, что обычно занимает 30-50 минут. Следовательно, есть ли команда, которую я мог бы включить в свой сценарий резервного копирования, чтобы предотвратить переход системы в спящий / спящий режим во время выполнения сценария резервного копирования, и есть ли также команда для восстановления обычной политики электропитания по умолчанию после завершения резервного копирования?

что-то вроде

#!/usr/bin/bash
#disable normal powerpolicy
disable-power-policies
backup /dev/sda /dev/sdb /dev/fioa /dev/fiob
#enable power policies.
enable-power-policies
9
задан 26 January 2015 в 04:32

4 ответа

На Ubuntu 16.04 LTS я успешно использовал следующее для отключения, приостановите:

sudo systemctl mask sleep.target suspend.target hibernate.target hybrid-sleep.target

И это, чтобы повторно включить его:

sudo systemctl unmask sleep.target suspend.target hibernate.target hybrid-sleep.target
8
ответ дан 26 January 2015 в 04:32

Можно использовать gsettings в сценарии для отключения автоматический, приостанавливают в параметрах питания и снова восстановлении поведения по умолчанию установки мощности.

Вот простая конфигурация, которые сначала получают текущий тайм-аут для сна, отключают ее, и после выполнения некоторой задачи повторно включают его.

#!/bin/bash   

#get the current timeout for automatic suspend both for on battey power and when plugged in.
a=$(gsettings get org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout)
b=$(gsettings get org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout)


#Disable automatic suspend 
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout 0
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout 0

#Your task here
sleep 5

#Enable the automatic suspend
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-ac-timeout $a
gsettings set org.gnome.settings-daemon.plugins.power sleep-inactive-battery-timeout $b
3
ответ дан 26 January 2015 в 04:32

Вот то, как сделать это в Xfce. (Благодаря g_p для их ответа, который сдвинулся с мертвой точки для моего собственного.)

#!/bin/bash

# Grab current sleep timeout on battery and ac
a=$(xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-ac)
b=$(xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-battery)

# Set sleep to never on battery and ac
xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-ac -s 14
xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-battery -s 14

# Your task here
sleep 5

# Reset sleep to what it was before on battery and ac
xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-ac -s "$a"
xfconf-query -c xfce4-power-manager -p /xfce4-power-manager/inactivity-on-battery -s "$b"
1
ответ дан 26 January 2015 в 04:32

У меня была та же самая проблема в прошлом году для резервных копий, которые заняли несколько часов!

можно попробовать, Сохраняют. Не спящий https://launchpad.net/keep.awake Это может контролировать загрузку ЦП, сетевой трафик и пользовательское действие для минимальных порогов.

я все еще не нашел время для создания снимка или deb для него. Однако временно можно загрузить программу с Панели запуска здесь

, текущая версия стабильна и работает над всеми версиями Ubuntu от 14,04 до 16,04. Это сказало, что я постоянно улучшаю его и буду добавлять новые опции.

Это работает как надлежащая команда. Введите - помогают видеть, что полное перечисляет того, что может быть сделано. Примеры внизу - только некоторые:

./keepawake.py --help

Для выполнения в интерактивном режиме:

./keepawake.py

Для выполнения как фоновый сервис:

nohup ./keepawake.py -r > /dev/null 2>&1 &

, Чтобы работать как фоновый сервис и установить 15 минут (900 секунд) как пользовательское время простоя действия, прежде чем это решит, что пользователь неактивен:

nohup ./keepawake.py -u 900 -r > /dev/null 2>&1 &

, Чтобы работать как фоновый сервис и установить минимальную загрузку ЦП как 13%:

nohup ./keepawake.py -c 13 -r > /dev/null 2>&1 &

, Чтобы работать как фоновый сервис и установить минимальный сетевой трафик как 5 КБ (5 120 байтов):

nohup ./keepawake.py -s 5120 -r > /dev/null 2>&1 &

Для выполнения всех трех настроек выше (сеть, ЦП, неактивный Пользователь) в том пойдите:

nohup ./keepawake.py -s 5120 -c 13 -u 900 -r > /dev/null 2>&1 &
3
ответ дан 26 January 2015 в 04:32

Другие вопросы по тегам:

Похожие вопросы: