web-dev-qa-db-ja.com

コマンドラインからどのようにサスペンド/ハイバネートできますか?

追加のソフトウェアをインストールせずに、コマンドラインを使用してラップトップを一時停止または休止状態にするにはどうすればよいですか?

354
user1034

従来、ubuntuはサスペンドおよび休止状態のかなり鈍い方法をサポートしていました。どちらも他のアプリとうまく統合できず、場合によっては一部のマシンでも動作しません。新しいメソッドはルートを必要とせず、電源イベントをリッスンするすべてのアプリケーションに通知します。

システム化された方法

Ubuntu 16.04以降、systemctl呼び出しを使用する必要があります( buntu 16.04の中断コマンド を参照)

systemctl suspend

そして

systemctl hibernate

新しい方法

このページの回答を参照してください dbusの使用に関するAdam Paetznickから 。理想的には、このアクションを簡単に使用できる~/bin/suspendショートカット/スクリプトを作成します。

Ssh経由で使用するには、 Peter V.Mørchによって概説されているようにポリシーキットルールを変更します

古い方法

buntu Forum によると、次のコマンドを使用できます。

pmi action suspend

そして

pmi action hibernate

これには、powermanagement-interfaceパッケージ(テストなし)をインストールする必要があります。

Sudo apt-get install powermanagement-interface

また、ネットブックで動作するコマンドSudo pm-suspendおよびSudo pm-hibernateを見つけました。

306
txwikinger

Gnomeに優しい方法は、dbusを使用することです。

dbus-send --system --print-reply \
    --dest="org.freedesktop.UPower" \
    /org/freedesktop/UPower \
    org.freedesktop.UPower.Suspend

このコマンドには、pm-suspendよりも2つの利点があります。

  1. Gnomeでそのオプションを選択している場合、画面は(再開時に)ロックされます。

  2. ルート権限は必要ないため、たとえばキーボードショートカットとして簡単に追加できます。

コメントで述べたように、最後の行のSuspendHibernateに交換すると、休止状態コマンドが作成されます。

dbus-send --system --print-reply \
    --dest="org.freedesktop.UPower" \
    /org/freedesktop/UPower \
    org.freedesktop.UPower.Hibernate

休止状態がError org.freedesktop.UPower.GeneralError: not authorizedをスローすると、ユーザーは休止状態を許可されない場合があります。 /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pklaを編集または作成して、次のセクションが含まれるようにします。 (source)

[Re-enable hibernate by default]
Identity=unix-user:*
Action=org.freedesktop.upower.hibernate
ResultActive=yes

これは buntuGnome 14.04 でテストされました。

注:これは基本的にqbiの答えと同じですが、Ubuntuの新しいバージョンとhibernateを含むように機能するように更新されています。

187
Adam Paetznick

英語

お気に入りのラジオ局を聴いて就寝したいためにコンピューターを1時間でサスペンドする場合は、ターミナルを開いて次のように入力します。

Sudo bash -c "sleep 1h; pm-suspend"

コンピューターは1時間でスリープ状態になります。目を覚ますと、開いている画像とすべてのものが保持されます。

1hを必要なものに置き換えることができます:h時間数、m分数、s秒数、d日数。

おやすみなさい!

フランス語

Si vous voulez juste que votre縦座標sem en en veille dans une heure parce que vous voulez vous endormir en ecoutant votre radiopréférée、ouvrez Terminal et tapez:

Sudo bash -c "sleep 1h; pm-suspend"

縦断と縦断があります。 Quan vous vousréveillerez、ilのオーラの保存は、メモリヴォスのアプリケーションouvertesです。

Vous pouvez remplacer 1h par ce que vous voulez:h pour les heures、m pour les minutes、s pour les secondes、d pour les jours。

ボンヌ!

スペイン語

Si quieres suspender tu computadora en una hora porque quieres ir a dormir escuchando tuestaciónde radio favorita、tan solo abre el terminal y escribe:

Sudo bash -c "sleep 1h; pm-suspend"

yのcomputadora sequedarádormida en 1 hora。 Cuando despiertes、allíhabránquedado abiertas tusimágenesy todas tus cosas。

Puedes reemplazar 1h por lo que desees:h para horas、m para minutos、s para segundos、d paradías。

¡ブエナスノーチェス!

57
greg

buntu 12.04 LTSおよびbuntu 13.04の場合

ハイバネーションを取得するには:

Sudo pm-hibernate

サスペンドを取得するには:

Sudo pm-suspend
31
rɑːdʒɑ

これを行うには、ファイル/sys/power/stateを使用できます。最初に、サポートされている状態を確認します。

user@linux:_> cat /sys/power/state
standby mem disk

root@linux:~> echo -n mem > /sys/power/state  # suspend to ram
root@linux:~> echo -n disk > /sys/power/state  # suspend to disk

またはdbus経由:

#dbus-sendを中断--session --dest = org.gnome.PowerManager\--type = method_call --print-reply --reply-timeout = 2000 \/org/gnome/PowerManager org.gnome.PowerManager.Suspend# Hibernate dbus-send --session --dest = org.gnome.PowerManager\--type = method_call --print-reply --reply-timeout = 2000 \/org/gnome/PowerManager org.gnome.PowerManager.Hibernate

これによると launchpadのエントリ 上記のインターフェースは削除されました。したがって、Ubuntuではもう機能しません。

22
qbi

コマンドライン(またはキーボードショートカット)からシステム(14.04)をシャットダウンするには、次を使用します。

dbus-send --system --print-reply --dest="org.freedesktop.login1" /org/freedesktop/login1 org.freedesktop.login1.Manager.PowerOff boolean:true

私は、利用可能なインターフェースをリストできるgdbusをいじってみて、これを見つけました。

バスで利用可能なサービスを一覧表示するには:

dbus-send --system --dest=org.freedesktop.DBus --type=method_call --print-reply /org/freedesktop/DBus org.freedesktop.DBus.ListNames

メソッドを見つけるには:

gdbus introspect --system --dest org.freedesktop.login1 --object-path /org/freedesktop/login1 --recurse
12
simonltwick

15.04 systemDは標準のinitシステムであるため、使用する新しいコマンドがあります。

systemctl suspend
12
k1l

Adam Paetznickのdbus-sendの答えは、明快さについて私が言ったように機能しませんでした。起動時に画面をロックするようにgnome-power-managerが設定されていても、マシンはロック解除されて起動しました。ウェイクアップ時に画面をロックしたいのですが、次のようになっていることがわかりました。

$ gnome-screensaver-command --lock && pmi action hibernate

これはgnomeの構成に依存しないと思いますが、テストしていません。

8

新しいインターフェイス

…15.10 Wily、おそらくUtopicとVividで機能します。

dbus-send --print-reply --system                         \
    --dest=org.freedesktop.login1                        \
    /org/freedesktop/login1                              \
    org.freedesktop.login1.Manager.Suspend boolean:true

pm-suspendコマンドとは異なり、これはSudoを必要としません。

3
Gringo Suave

リモートマシンをssh経由でスタンバイ状態にする方法は次のとおりです。

 ssh -t 192.168.1.4 'Sudo Nohup&>/dev/null bash -c "(sleep 1; echo -n mem>/sys/power/state)&"' 
 x @ 192.168.1.4のパスワード:
 [Sudo] password for x:
 192.168.1.4への接続が閉じられました。

/ sys/power/stateはUbuntu 13.10で動作します。 pmiはDbusエラーを返します。

1
user229115

私のように、まだKDE/Ubuntu 14.04システムで作業している人のために更新してください。ロックするにはqdbusを使用し、一時停止するにはdbusを使用します。完全なコマンド:

qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock && dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend

休止状態にするには、つまりRAMではなくハードディスクにサスペンドするには、コマンドの最後にある「サスペンド」を「ハイバネート」に置き換えます。

'-lock'オプションにハイフンを1つだけ入力し、スクリーンセーバーが実行されている場合にのみ、中断せずに画面をロックするだけで、xscreensaver-command -lockが機能します。実際にはあまり便利なコマンドではありません。 i3lockを使用する方が簡単ですが、qdbusを使用する場合のように、仕事に戻るためのきちんとしたログインダイアログは表示されません。

0
LinuxRev

16.04(Gnomeデスクトップを使用)で次のように動作します。

gnome-screensaver-command --lock && compsleep

また、Gnome設定パネルのキー「Shift-Super-X」を使用して、カスタムキーボードショートカットとしてインストールしました。

0
christopherbalz

個人的に、私はpmiメソッドを試してきました。しかし、これを試してみると、エラーメッセージが表示されました:Error org.freedesktop.DBus.Error.Spawn.ChildExited: Launch helper exited with unknown return code 1。ただし、 このバグレポート番目のコメント には回避策があり、これは私にとってはうまくいったようです(Ubuntu 13.03を使用しています)。

0
TSJNachos117