歯車のシャットダウンは、マシンのシャットダウンが許可されているかどうかを確認します。これはPolicyKitを介して行われます。シャットダウンの場合、ファイル内のこのステートメント/usr/share/polkit-1/actions/org.freedesktop.consolekit.policy
がチェックされます。
<action id="org.freedesktop.consolekit.system.stop">
<description>Stop the system</description>
<message>System policy prevents stopping the system</message>
<defaults>
<allow_inactive>no</allow_inactive>
<allow_active>yes</allow_active>
</defaults>
</action>
PolicyKitはdbus-send
コマンドをトリガーします。シャットダウンの場合:
dbus-send --system --print-reply --dest=org.freedesktop.Hal /org/freedesktop/Hal/devices/computer org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown
シャットダウンコマンドを呼び出すルート権限でバックグラウンドで実行されているデーモンがあります。
コマンドライン(shutdown, reboot, halt, ...
)を使用してマシンを「古い方法」でシャットダウンできるようにするには、それらのコマンドにsuid-Bitを追加する必要があります。ただし、シェルにアクセスできるシステム上の全員がマシンをシャットダウンする可能性があることに注意してください。
sudo shutdown -h now
が実行されますが、アクセス許可がないと機能しないという問題がありshutdown
ました。 ..私の状況を理解してください.. :)