Как автоматически отключиться из командной строки в 13.04

Я знаю, что уже есть аналогичный вопрос по этой теме . Но этот вопрос был только о том, как получить диалог выключения в целом. Мне нужно вернуть обратный отсчет старого диалогового окна выключения (Ubuntu < = 12.10), которое выключало систему через 60 секунд.

geobuntu предложил этот вызов dbus в своем ответе :

dbus-send --print-reply --dest="org.gnome.Shell" /org/gnome/SessionManager/EndSessionDialog org.gnome.SessionManager.EndSessionDialog.Open uint32:2 uint32:0 uint32:60 array:objpath:/org/gnome/SessionManager/EndSessionDialog

qdbus указывают, что третий аргумент - max_wait, который должен (на мой взгляд) установить и начать обратный отсчет :

~$ qdbus org.gnome.Shell /org/gnome/SessionManager/EndSessionDialog
[...]
method void org.gnome.SessionManager.EndSessionDialog.Open(uint type, uint arg_1, uint max_wait, QList<QDBusObjectPath> inhibitors)

Но это не так. Я уже попробовал различные значения для type и arg_1 без удачи.


РЕДАКТИРОВАТЬ: На самом деле обратный отсчет более "приятно иметь". Что мне действительно нужно, так это то, что система отключится без каких-либо дополнительных действий пользователя. Он должен работать без sudo (включая любые sudoers без пароля).

Я бы предпочел вызовы dbus, потому что у меня уже есть хороший список вызовов dbus , который отключит все DE, кроме Unity> = 13.04


EDIT2: я посмотрел в Источник единства . Я не знаю C++, но для меня похоже, что arg1 и timeout_length не обрабатываются в источнике (может кто-нибудь со знанием C++ подтвердить это?). Возможно, это будет добавлено в более поздних выпусках.


EDIT3: я сообщил об этом как ошибка # 1256703 на панели запуска.

1
задан 13 April 2017 в 15:24

2 ответа

Запустите sudo visudo в терминале и добавьте следующую строку:

%user_name ALL=(ALL) NOPASSWD: /sbin/poweroff, /sbin/reboot, /sbin/shutdown

Это позволяет вам запускать вышеупомянутые три команды, , используя sudo , однако без пароля.

Таким образом, sudo poweroff теперь будет приводить к отключению пароля.

затем создайте псевдоним, поместив следующее в конце ~/.bashrc_aliases, открыв его как -

gedit ~/.bash_aliases

и добавив следующее в последнем -

alias shutdown='sudo shutdown -h now'

Теперь давайте загрузим изменения в файл .bash_aliases.

source ~/.bash_aliases

Попробуйте shutdown. надеюсь, что это сработает.

0
ответ дан 13 April 2017 в 15:24
  • 1
    @Muctadir?? Работа уже сделана, Вы работаете, должен нажать две кнопки. – Jacob Vlijm 26 May 2015 в 03:57

Был большой ответ из Маджал Мирасол по этому поводу. Он предложил использовать

/usr/bin/dbus-send --system --print-reply \
--dest="org.freedesktop.ConsoleKit" \
/org/freedesktop/ConsoleKit/Manager \
org.freedesktop.ConsoleKit.Manager.Stop

Это будет работать идеально для меня.

Если вам нравится это решение, пожалуйста, пришлите благодарность ответу Маджала, а не этому.

0
ответ дан 13 April 2017 в 15:24

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

Похожие вопросы: