2

Linuxでシステムのシャットダウンまたは再起動をプログラムでトリガーするにはどうすればよいですか?できれば昇格された特権を必要としない。

古いリリース(Ubuntu 10.04など)では、D-Busを使用してHALorg.freedesktop.Hal.Device.SystemPowerManagement.Shutdownまたはメソッドを呼び出すことができました。http://people.freedesktop.org/~dkukawka/hal-spec-git/hal-spec.html#interface-device-systempowerRebootを参照してください。

ただし、HALは廃止されたようであり、Ubuntu12.10には存在しません。これを行うための現在のベストプラクティスは何ですか?

4

2 に答える 2

3

shutdownコマンド。ただし、ほとんどのシステムではroot権限が必要です。

今すぐシャットダウン:

shutdown -h now

今すぐ再起動:

shutdown -r now

man shutdown詳細については。

于 2012-12-08T03:59:20.923 に答える
3

ConsoleKitを使用できます。org.freedesktop.ConsoleKit.Manager.StopDBusメッセージをに送信しますorg.freedesktop.ConsoleKit。コマンドラインからは、次のようになります。

dbus-送信\
    - システム \
    --dest = org.freedesktop.ConsoleKit \
    --type = method_call \
    --print-reply \
    --reply-timeout = 2000 \
    / org / freedesktop / ConsoleKit / Manager \
    org.freedesktop.ConsoleKit.Manager.Stop

現在のユーザーがシャットダウンの実行を許可されている場合、root権限は必要ありません。

KShutdownユーティリティもご覧ください。ConsoleKitからGnomeおよびKDEAPIに至るまで、さまざまなシャットダウン方法のソースコードが含まれています。

于 2012-12-08T04:01:48.253 に答える