お知らせ

  • 利用規約を守って投稿してください。また、よくある質問および投稿の手引きも参照してください。
  • メッセージの投稿にはアカウントが必要です。未登録の方は、ユーザ登録ページからアカウントを作成することができます。

#1 2015-07-06 22:50:43

hotash
新しいメンバ
登録日: 2013-05-27

ubuntu14.04/メニューのサスペンドで実行される処理を知りたい

ubuntu14.04を使用しています。

右上の歯車アイコンをクリックして表示されるメニューから「サスペンド」を選択すると
サスペンドされ、ファンも止まり電源ランプが点滅し始めます。
この状態で電源ボタンを押せば問題なく復帰します。

これと同じことをコマンドで行いたく、pm-suspendコマンドを実行すると画面は
真っ暗になりますが、ファンも止まらず電源ランプも点滅しません。
コマンド実行後、電源ボタンを長押しして電源を切るしか方法がなく、メニューから
選択したサスペンドと同じ動きをさせることができません。

メニューからサスペンドを選択した場合、何かのコマンドを実行しているのでしょうか?
また、それはどのように調べたら分かるのでしょうか?

それが分かれば、そのコマンド(?)を実行すればメニューから選択したときのように
問題なくサスペンドできるのではないかと考えているのですが...。

ご存じの方がいらっしゃればご教授ください。

オフライン

 

#2 2015-07-10 19:42:54

Templer
メンバ
登録日: 2009-07-08

Re: ubuntu14.04/メニューのサスペンドで実行される処理を知りたい

14.04以降の場合ですと、UbuntuデスクトップなどではD-Bus経由でsystemdのlogindを利用していますので、コマンドでとなるとそれと同じ意味合いの以下となります。

コード:

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

※ サスペンドが使えるかどうかを確認する場合は「org.freedesktop.login1.Manager.Suspend boolean:true」の部分を「org.freedesktop.login1.Manager.CanSuspend」に書き換えます。

hotashさんがpm-suspendを使用する経緯がわかりませんが、コマンドを直打ちしているのであれば、これを打ち込むには長すぎるのでaliasで短縮コマンドを作っておくとかすると良いかと思います。

ちなみに、Ubuntu 15.04以降であればsystemdのsystemctlコマンドが使えますので、

コード:

systemctl suspend

でOKになります。

hotash による投稿:

また、それはどのように調べたら分かるのでしょうか?

システムを知っているなら、ソース(コードや依存関係)から探ることは可能だろうと思います。
私の場合ですと、標準のデスクトップセションではなく時代遅れのウィンドウマネージャーを使用していますので、使い勝手を良くするために便利そうなコマンドを探した結果、といった感じでしたね。
この件に関しては、直にコマンドそのものを探そうとするなら、このように「このウィンドウマネージャーには電源を操作する方法がないんだけどコマンドで良さそうなのないかなぁ」といった狭い範囲の要件(ではあるけれど、その範囲に合致する誰もが望みそうなこと)に絞ってネット検索しないと、なかなか見つけられないのではないでしょうか。

(この機能のバックエンドを振り返ってみたら、自分が使ってきたものだけでも、HAL、UPower、logindと、もう三代になるんですね……。泣けてくる……)

オフライン

 

#3 2015-07-13 22:15:12

hotash
新しいメンバ
登録日: 2013-05-27

Re: ubuntu14.04/メニューのサスペンドで実行される処理を知りたい

Templer様、返信ありがとうございます。紹介していただいた下記のコードで問題なくサスペンドすることができました。

Templer による投稿:

コード:

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

Templer による投稿:

システムを知っているなら、ソース(コードや依存関係)から探ることは可能だろうと思います。

ググってなんとかしようとしていた私にはハードルが高そうです...。

Templer による投稿:

この件に関しては、直にコマンドそのものを探そうとするなら、このように「このウィンドウマネージャーには電源を操作する方法がないんだけどコマンドで良さそうなのないかなぁ」といった狭い範囲の要件(ではあるけれど、その範囲に合致する誰もが望みそうなこと)に絞ってネット検索しないと、なかなか見つけられないのではないでしょうか。

確かに、なかなか目的にあう結果を探しだせず、ここで質問させていただいた次第です。
pm-suspendコマンドは、検索した中でも目的に近そうでしたので試してみた感じでした。

おかげさまでやりたいことができました。ありがとうございました。

オフライン

 

Board footer

Powered by FluxBB