web-dev-qa-db-ja.com

LXDEのコマンドラインからマシンをサスペンドする方法

Openbox 3.5.2でLubuntu 14.04を使用しています。
画面をロックするためのワンライナーがあります:dm-tool lock
および終了メニューのポップアップ:lxsession-default quit

ただし、サスペンドを実行する必要がある場合は、前述のメニューを最初にポップアップする必要があります。
次に、[一時停止]オプションに移動してEnterキーを押します。

単一のコマンドで実行できますか?

4
vucalur

次の方法で端末からサスペンドできます。

Sudo pm-suspend

場合によっては、pm-suspendを直接呼び出すと、wi-fiドライバーやその他のプログラムで問題が発生する可能性があります。さらに、pm-suspendのマニュアルページには、コマンドラインから呼び出すことは問題ありませんが、通常はデスクトップパワーマネージャから呼び出すことを意図していると書かれています。

マニュアルページには、コマンドラインから呼び出されたときに"it is not guarenteed that all of your programs in your desktop session keep working as expected."

問題のほとんどは、中断前に停止またはアンロードされていないサービスまたはモジュールに起因するようです。この問題の適切な議論とそれに対処する方法については、Arch wikiの Suspend to Ram を参照してください。

Arch Wikiでは、特定のユーザーがSudoからvisudoなしでpm-suspendを実行し、/etc/sudoersに次の行を追加できるようにすることも推奨しています。

username  ALL = NOPASSWD: /usr/sbin/pm-suspend

LXDEはxfce4-power-managerを使用します。これはpkexecを使用してpm-suspendを呼び出します。 pkexecは、別のユーザー、この場合はrootとしてプログラムの実行を許可します。

認証はpolkitによって処理されます。通常はパスワードの入力を求められますが、 パスワードなしのpkexec から学んだように、/usr/share/polkit-1/actionsのファイルを使用してこれを抑制することができます。

そこにはorg.freedesktop.upower.policyというファイルがあります(upowerpm-suspendの呼び出しに関与していますが、簡単にするために省略しました)。

このファイルには<allow_active>yes</allow-active>行が含まれています。これにより、パスワードを要求せずにアクションを続行できます。

電源関連のアクションは、画面をロックしたりメニューを表示したりするよりもはるかに複雑です。パワーマネージャでサスペンドオプションを使用する方が適切な場合があります。

サスペンドファンクションキーが機能する場合は、便利かもしれません。最初は機能していないように見える場合は、電源マネージャーの設定を確認してください。 Lubuntuでは、スリープボタンはデフォルトでサスペンドに設定されていません。

pm-suspendを直接使用するために、Archページで問題を処理して楽しむこともできます。しかし、注意してください。他のいくつかのラップトップで問題なくコマンドを直接使用しました。この特定のラップトップ(Lenovo S10-3)では、wifiドライバーが殺されました。 CMOSバッテリーを取り外して、再び動作させる必要がありました。

4
chaskes

承知しました、

これを試すことができます:

echo mem > /sys/power/state 

多分あなたはそれを実行するために須藤である必要があります。

2
Kresimir Pendic

これは、DBusを介してSudo以上の特権を必要とせずに実行できます。エイリアスまたはスクリプトを作成できます。

dbus-send --session --dest=org.freedesktop.PowerManagement \
 /org/freedesktop/PowerManagement \
 org.freedesktop.PowerManagement.Suspend

d-feetを使用して、使用可能なすべてのオプションを調べてください。

  1. D-feetをインストール

    Sudo apt-get install d-feet
    
  2. フォロー

    Dフィート→セッションタブ
    org.freedesktop.PowerManagement
    /org/freedesktop/PowerManagement
    org.freedesktop.PowerManagemenl

    Dフィート→システムまたはセッションタブ
    <dbus-name>
    <object-path>
    <interface>:メソッド、プロパティ、シグナルのリスト

参照:

  • man dbus-send
  • /usr/share/dbus-1/interfaces/org.freedesktop.PowerManagement.xml

    セッションバスの/usr/share/dbus-1/services/
    /usr/share/dbus-1/system-services/システムバス用

    両方からの/usr/share/dbus-1/interfaces/インターフェイス

    システムバスサービスmostにアクセスするには、ルート権限またはポリシー編集polkitが必要です。 chaskes answerを参照してください。

1
user.dz