关闭 Ubuntu 命令

关闭 Ubuntu 命令

允许用户从 gnome 关闭计算机的命令或应用程序是什么?它如何拥有特权,而 halt 需要超级用户?

答案1

它使用 DBus 消息。

dbus-send --system --print-reply --dest=org.freedesktop.Hal \
          /org/freedesktop/Hal/devices/computer \
          org.freedesktop.Hal.Device.SystemPowerManagement.Shutdown

找到了这个这里

重启:

dbus-send --system --print-reply --dest=org.freedesktop.Hal \
          /org/freedesktop/Hal/devices/computer \
          org.freedesktop.Hal.Device.SystemPowerManagement.Reboot

暂停:

dbus-send --system --print-reply --dest=org.freedesktop.Hal \
          /org/freedesktop/Hal/devices/computer \
          org.freedesktop.Hal.Device.SystemPowerManagement.Suspend int32:1

休眠:

dbus-send --system --print-reply --dest=org.freedesktop.Hal \
          /org/freedesktop/Hal/devices/computer \
          org.freedesktop.Hal.Device.SystemPowerManagement.Hibernate

答案2

GNOME 通过 DBus 向已以 root 身份运行的服务发送消息来实现这一点。

要使用 ConsoleKit 关机或重启:

gdbus 调用 -y -d org.freedesktop.ConsoleKit \
              -o /org/freedesktop/ConsoleKit/管理器 \
              -m org.freedesktop.ConsoleKit.Manager.停止
gdbus 调用 -y -d org.freedesktop.ConsoleKit \
              -o /org/freedesktop/ConsoleKit/管理器 \
              -m org.freedesktop.ConsoleKit.Manager.重新启动

要使用 UPower 暂停或休眠:

gdbus 调用 -y -d org.freedesktop.UPower \
              -o /org/freedesktop/UPower \
              -m org.freedesktop.UPower.Suspend
gdbus 调用 -y -d org.freedesktop.UPower \
              -o /org/freedesktop/UPower \
              -m org.freedesktop.UPower.Hibernate

相关内容