Zawieś polecenie w Ubuntu 16.04

23

W Ubuntu 14.04 używałem następującego polecenia, aby zawiesić komputer jako użytkownik bez uprawnień roota:

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

Niestety w Ubuntu 16.04 to już nie działa i pojawia się komunikat o błędzie:

Błąd org.freedesktop.DBus.Error.UnknownMethod: Nie ma takiej metody „Suspend”

Najwyraźniej nastąpiły pewne zmiany, więc jakie byłoby teraz prawidłowe polecenie?

tmt
źródło

Odpowiedzi:

33

Zgodnie z wiki Debiana , w systemd jest to nowe polecenie:

systemctl suspend

UWAGA : To polecenie nadal wymaga uprawnień administratora, jeśli otwarta jest sesja innego użytkownika . To również nie działa w Cron . W obu przypadkach konieczne będzie utworzenie dodatkowych ustawień .

tmt
źródło
4
W celu uzyskania informacji -ioznacza ignore-inhibitors(patrz systemctl manpage: manpages.ubuntu.com/manpages/xenial/en/man1/systemctl.1.html ), co może nie być tym, czego chcesz.
CJlano
@CJlano, dziękuję za poruszenie tej kwestii, ponieważ tak naprawdę zastanawiałem się, czy dołączyć tę flagę do mojej odpowiedzi. Powodem tego było to, że podczas mojego (krótkiego) testu zawieszenie wydaje się nie być wykonywane, jeśli jakiś inny użytkownik jest zalogowany i flaga nie jest używana. Przyjrzę się temu jeszcze raz. W międzyczasie, jeśli masz więcej informacji na temat tworzenia w wierszu poleceń odpowiednika zawieszenia wykonanego w graficznym interfejsie użytkownika, podaj nową odpowiedź lub opublikuj ją jako komentarz, a ja dołączę twoje informacje do mojej (i dam ci uznanie: - )).
tmt
Czy istnieje sposób, aby blokować ekran? (Korzystanie z Ubuntu MATE.)
Joschua,