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

23

В 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»

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

TMT
источник

Ответы:

33

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

systemctl suspend

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

TMT
источник
4
Для получения информации, -iозначает ignore-inhibitors(см. Manctages systemctl: manpages.ubuntu.com/manpages/xenial/en/man1/systemctl.1.html ), что может быть не то, что вы хотите.
CJlano
@CJlano, спасибо, что поднял его, потому что мне было интересно, включить ли этот флаг в мой ответ. Причина, по которой я это сделал, заключалась в том, что во время моего (краткого) теста приостановка, по-видимому, не выполнялась, если в систему вошел какой-то другой пользователь и флаг не используется. У меня будет еще один внимательный взгляд на это. Между тем, если у вас есть какая-то дополнительная информация о том, как создать в командной строке эквивалент приостановки, выполненной в графическом интерфейсе, придумайте новый ответ или опубликуйте его в качестве комментария, и я включу вашу информацию в мою (и предоставлю вам кредит: - )).
tmt
Есть ли способ заставить его также заблокировать экран? (Используя Ubuntu MATE.)
Джошуа