Приостановить команду в Ubuntu 16.04

В Ubuntu 14.04 я использовал следующую команду для приостановки компьютера как пользователя без прав root:

dbus-send --system --print-reply --dest="org.freedesktop.UPower" \
/org/freedesktop/UPower org.freedesktop.UPower.Suspend

К сожалению, в Ubuntu 16.04 это больше не работает, и я получаю сообщение об ошибке:

Ошибка org.freedesktop.DBus.Error.UnknownMethod: нет такого метода "Suspend"

По-видимому, произошли некоторые изменения, так что теперь будет правильной командой?

1 ответ

Решение

Согласно вики Debian, с systemd это новая команда:

systemctl suspend

ПРИМЕЧАНИЕ. Эта команда по-прежнему требует привилегий root, если открыт сеанс другого пользователя. Это также не работает в Cron. В обоих случаях вам нужно будет создать дополнительные настройки.

Suspend метод по-прежнему доступен на D-Bus, если необходимо:

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

boolean:true это user_interaction параметр:

Логические параметры user_interaction могут использоваться для управления тем, должен ли PolicyKit интерактивно запрашивать у пользователя учетные данные для аутентификации, если это необходимо.

Источник

Другие вопросы по тегам