web-dev-qa-db-ja.com

コマンドラインから一時的にスリープと休止状態を無効にする方法

所定の条件が満たされている限り、必要に応じてUbuntuの設定を永続的に操作してスリープ状態にすることができる方法はたくさんあるようです。ただし、これらは、一時的に標準ポリシーを先送りしたいようなまれなタスクを考慮しない、より永続的なソリューションです。私が直面している問題は、バックアップを実行するために非常に長いスクリプトが実行されており、その特定のプロセスの実行中にコンピューターがスリープまたは休止状態にならないようにすることです。したがって、バックアップスクリプトの実行中にシステムが休止状態/スリープ状態になるのを防ぐために、バックアップスクリプトに含めることができるコマンドがありますか?また、バックアップの完了後に通常の既定の電源ポリシーを復元するコマンドもありますか?

何かのようなもの

#!/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
Rusty Weber

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
Dustin Kirkland

昨年、数時間かかったバックアップでもまったく同じ問題が発生しました!

Keep.Awake https://launchpad.net/keep.awake を試すことができます。最小負荷のCPU負荷、ネットワークトラフィック、ユーザーアクティビティを監視できます。

まだスナップやデブを作成することには至っていません。ただし、一時的にLaunchpadからプログラムをダウンロードできます here

現在のバージョンは安定しており、14.04から16.04までのすべてのUbuntuバージョンで動作します。それは私が絶えずそれを改善しており、新しい機能を追加することを言った。

適切なコマンドのように機能します。 --helpと入力して、実行可能な操作の完全なリストを表示します。下の例はほんの数例です。

./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 &

バックグラウンドサービスとして実行し、最小CPU負荷を13%に設定するには:

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

バックグラウンドサービスとして実行し、最小ネットワークトラフィックを5KB(5120バイト)に設定するには:

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

上記の3つの設定(ネットワーク、CPU、ユーザーアイドル)をすべて一度に実行するには:

Nohup ./keepawake.py -s 5120 -c 13 -u 900 -r > /dev/null 2>&1 &
3
DanglingPointer

スクリプトで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
g_p

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
jbrock