web-dev-qa-db-ja.com

Fedoraの自動サスペンド

私はFedora13を使用しており、自動的にシャットダウンして再起動するために、次のコマンドがあります。

# shutdown -h/-r now 

同様に、しばらくしてからシステムをサスペンドモードにしたい場合、どのコマンドを使用すればよいですか?

5
crskhr

UNIX哲学は、1つのジョブを実行するツールと、それらを組み合わせるためのシェルを用意することです。そこで、サスペンドコマンドとdo-something-laterコマンドを組み合わせます。一時停止の標準コマンドがFedoraにあるのかわかりません(いくつか浮かんでいます)。 Ubuntuの通常のコマンドであるpm-suspendを使用します。

X秒後に一時停止するには:sleep X && pm-suspend

特定の時間に一時停止するには:echo pm-suspend | at HH:MM

pm-suspendユーティリティ( pm-utils パッケージに含まれており、マシンにすでにインストールされている可能性があります)は、コンピューターをサスペンドモードにするために使用されます。したがって、「今すぐ」一時停止するには、(rootとして、またはSudoを使用して)実行できます。

# pm-suspend

残念ながら、私が知る限り、pm-suspendは時間パラメータを取りません。ただし、時間パラメーターをとるラッパースクリプトを作成することはできます。スクリプトを$ PATHのどこかに保存し、chmod + xします。 「サスペンド」とは呼ばないでください。単純なものは次のようになります。

#!/bin/sh
#change this following line to wherever pm-suspend lives
suspend="/usr/sbin/pm-suspend"

#make sure we are root
if [ "$(id -u)" != "0" ]; then
   echo "This script must be run as root" 1>&2
   exit 1
fi

if [ -z "$1" ]; then
    echo "mysuspend: time in seconds expected"
    exit 1;
Elif [ "$1" = "now" ]; then
    echo "Suspending now!"
    wait="0"
else
    #make sure we get a number.
    echo "$1" | grep [a-zA-Z] > /dev/null
    if [ $? -ne 0 ]; then
        echo "Suspending in $1 seconds"
        wait="$1"
    else
        echo "mysuspend: time in seconds expected"
        exit 1
    fi
fi

sleep "$wait"
$suspend

警告:「私のために働く」以外にこれをテストしていません。

Suspendコマンドをpm-suspend-hybridに変更することを検討してください。これにより、一時停止中に電力が不足した場合に備えて、休止状態ファイルも保存されます。

興味があるかもしれない、またはスクリプトをより堅牢にする可能性のある他のユーティリティは、pm-hibernate、pm-is-supportedです。

1
Steven D