さて、最初に、これは私が直面している問題ではありませんが、これをよりよく理解したいと思います。
コマンドラインからマシンをシャットダウン/再起動したい場合は、次のコマンドを呼び出す必要があります。
$ Sudo poweroff
$ Sudo reboot
つまり、これらのACPI呼び出しを行うにはroot権限が必要です。
ただし、root権限を付与せずにDEを起動します(XFCEを使用します):$ startxfce4 --with-ck-launch
今、私は--with-ck-launch
パラメータは、XFCEがシステムをシャットダウン/再起動するのに役立ちますが、その方法がわかりません。
ConsoleKitがroot権限なしでシャットダウンできるのはなぜですか?スーパーユーザー権限なしでランレベルを変更するにはどうすればよいですか?そして、それが可能であるため、root権限なしでコンソールからマシンをシャットダウンするにはどうすればよいですか?
Dbusを介してConsoleKitと通信できます。たとえば、dbus-send
ツールを使用すると、いくつかの注目すべきコマンドは次のとおりです。
シャットダウン:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop
リブート:
dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart
休止状態と一時停止のコマンドもありますが、それらが何であるかはわかりません。
編集:サスペンドコマンドが見つかりました
dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Suspend int32:0
新しいシステムの場合
dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend