Горячие клавиши для выключения компьютера в Linux

Допустим, вам нужно (как мне) назначить для выключения, перезагрузки или ждущего режима горячие клавиши. Или вы хотите включить в свой скрипт какое-то из этих действий. Либо создать свои кнопки "Выключить", и пр., в трее или на рабочем столе.

Без дополнительных настроек и ввода пароля администратора должны работать следующие команды:

Выключение

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

Перезагрузка

dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart

Ждущий режим

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

Спящий режим

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

Но можно использовать и более "естественно звучащие":)) варианты. Например, команды shutdown и pm-suspend.

(Как мне напоминают, есть ещё halt, reboot, restart, init 0, init 6, pm-hibernate, pm-powersave, pm-suspend-hybrid... Но я же написал "например" :-)

Только чтобы пользоваться ими, не вводя каждый раз пароль администратора, надо предварительно отредактировать один файлик.
Излагаю на примере Xubuntu, Debian'а, Ubuntu, и прочих дистрибутивов с sudo.

Запустите от администратора какой-нибудь текстовой редактор, например
sudo leafpad или sudo gedit
Откройте файл /etc/sudoers
Но, правильнее (как мне справедливо указали, и в шапке sudoers рекомендуют) использовать sudo visudo

Добавьте в конец файла такие строки
(только вместо ИмяВашегоПользователя не забудьте вписать имя вашего пользователя;-)

ИмяВашегоПользователя ALL=NOPASSWD: /usr/sbin/pm-suspend
ИмяВашегоПользователя ALL=NOPASSWD: /sbin/shutdown

В конце файла (обязательно!) не забудьте сделать пустую строку. И сохраните. Всё, сразу, без перезагрузки, можно будет использовать (не вводя пароль) команды

Для ждущего режима

gksudo pm-suspend

Для перезагрузки

gksudo 'shutdown -r 0'

Для выключения

gksudo 'shutdown -h 0'

В Xubuntu я назначил на них "горячие клавиши" через Меню приложений - Настройки - Диспетчер настроек - Клавиатура - Комбинации клавиш.

Оценка: 
5
Средняя: 5 (4 оценки)

Комментарии

Halt - вместо тысячи слов

Оценка: 
Средняя: 4.3 (4 оценки)
comrade аватар

От админа постоянно работаете? Ну, ну! Тогда оно, конечно, просто halt

А так (чтобы мог выключать бесправный пользователь:-)
sudo gedit /etc/sudoers
Добавить
ИмяВашегоПользователя ALL=NOPASSWD: /usr/sbin/halt

И вот теперь можно будет
gksudo halt
без ввода пароля

Оценка: 
Средняя: 5 (1 оценка)

Хм а sudo halt недостаточно?

Оценка: 
Средняя: 5 (1 оценка)
comrade аватар

В терминале, да, sudo.
А Вы попробуйте – значок запуска с командой
sudo halt
создайте – сработает он у Вас? ;-)

Кстати, у меня halt вообще компьютер правильно не выключает (как будто он срабатывает в стиле старинных блоков питания AT), видимо какой-то параметр ещё нужен...
Но
shutdown -h 0
выключает, точнее
gksudo 'shutdown -h 0'

Проверил:
из терминала sudo halt -p нормально выключило.
Так что и halt не совсем уж прост:-), к тому же в моей хубунте, например, он просто ссылка на reboot.

Оценка: 
Средняя: 4 (2 оценки)

Насколько помнится, halt и не должен выключать систему, он её останавливает, после чего становится возможным её безболезненно выключить самому (помните знаменитое «Теперь питание компьютера можно отключить»?). А для выключения всегда использовалась команда shutdown -h now, ну или её аналог.

Оценка: 
Пока без оценки

>> Запустите от администратора какой-нибудь редактор

Вот это неправильно, не какой-нибудь, а только visudo. Иначе есть все шансы сломать тонкую и чуткую структуру sudoers и придётся его восстанавливать, с помощью Live-диска, например.

Оценка: 
Средняя: 5 (2 оценки)
comrade аватар

Спасибо за комментарий, поправил текст:-)

Как говорится: "ламеры и хакеры инструкций не читают" — всю жизнь из текстового редактора исправлял sudoers, не подозревая об опасностях((-:

Оценка: 
Средняя: 5 (1 оценка)

Необязательно же. Теоретически должно быть достаточно делать резервную копию файла перед каждой правкой, плюс задать пароль для root. Тут, конечно, тоже могут быть свои неудобства, но, IMHO, это проще, чем учить visudo. Хотя, наверное, и «не по фэн-шую» :).

Оценка: 
Пока без оценки
comrade аватар

Вот (заодно уж:-) аналоги для виндовса:

Выключение компьютера
Shutdown.exe -s -t 00

Перезагрузка
Shutdown.exe -r -t 00

Блокировать компьютер
Rundll32.exe User32.dll,LockWorkStation

Гибернация
Rundll32.exe PowrProf.dll,SetSuspendState

Сон
Rundll32.exe PowrProf.dll,SetSuspendState Sleep

Оценка: 
Средняя: 5 (1 оценка)

А как сделать так, чтобы я нажимал на кнопку и открывался браузер с открытым набором сайтов #1 (например, новостные сайты). А потом нажимал другую кнопку и чтобы снова открывался браузер, но уже с набором сайтов №2 (например, по работе)?

Оценка: 
Пока без оценки
comrade аватар

Можно, например, фаерфоксом два профиля сделать:
firefox -CreateProfile NewsProf
firefox -CreateProfile WorkProf

И открывать
firefox -P NewsProf
или
firefox -P WorkProf

И в каждом свой набор домашних страниц...

А на эти команды запуска повесить горячие клавиши, или в отдельные значки запуска прописать.

__________________________________
Сам так делать не пробовал:)), получится – напишите.
(Я то просто в закладках сделал папки по темам, и потом "Открыть всё во вкладках"...)

Оценка: 
Пока без оценки

Спасибо. Когда ковырялся с параметрами, нашел способ еще проще: оказывается, можно через пробел перечислить в качестве аргументов все сайты, которые требуется открыть:

firefox http://site1.ru http://site1.ru http://site1.ru и так далее

Осталось Вам рассказать как мне повесить эти команды на заданные комбинации, например, Win+F1, Win+F2 и так далее. :)

Оценка: 
Пока без оценки
comrade аватар

Мне тоже такой способ сразу приходил на ум:-)
Но даже не стал его предлагать – не уверен, что так удобнее будет! Если только у Вас эти наборы сайтов никогда не меняются.

Хотя может даже удобнее всего было бы фаерфоксу скармливать адреса из одного или другого текстового файла, которые можно легко редактировать.
А то в разных профилях ведь и закладки разные будут, и прочее...
Но в описании параметров запуска фаерфокса я такой возможности не нашёл. Наверное экспорт из текстового файла в параметры запуска фаерфокса можно каким-нибудь башевским трюком организовать.

А с горячими клавишами я схалявил – не стал разбираться – где там их конфигурация в линуксе, и просто назначил в графическом конфигураторе настроек клавиатуры Xfce ((-:
В гноме 2, помню, тоже такая возможность была. Наверное и в KDE есть...

Оценка: 
Пока без оценки

А Менеджер Сессий (a.k.a. Session Manager — слова для гуглёжки, ибо ссылок не будет, а причина сему, полагаю, очевидна) не подойдёт? При таком подходе достаточно будет открыть броузер один раз, что, по-моему, куда быстрее.

Оценка: 
Пока без оценки

Менеджером сессий пользуюсь давно. В Opera он встроенный, пользовался им вплоть до момента умерщвления этого некогда славного браузера. В Chrome использую расширение Session Buddy. В обоих случаях приходится совершать дополнительные телодвижения, а значит, есть место для оптимизации.

Оценка: 
Пока без оценки

Хотя Kubuntu в тегах и не указана, наверное, стоит добавить, что почти всё вышенаписанное применимо и к ней, с той разницей, что вместо gksudo будет kdesudo.

Оценка: 
Средняя: 5 (2 оценки)

Кто бы мог подумать, что такая простейшая тема вызовет такое обсуждение?

Оценка: 
Средняя: 5 (1 оценка)

Простые темы всегда самые интересные. Предлагаю для обсуждения еще вопрос: стоит ли стараться максимально все оптимизировать? Например, написать скрипты на все случаи жизни и развесить на хоткеи. Или необходимость потратить время на настройку и держать все комбинации в памяти перечеркивают возможный профит?

Оценка: 
Средняя: 5 (1 оценка)

глушу срвы - init 0
перезагруз - init 6

Оценка: 
Средняя: 5 (1 оценка)
comrade аватар

Спасибо, добавил в список :-)

init 0 или init 6 от администратора выполняется, так что "рецепт приготовления" тот же...

Оценка: 
Пока без оценки

А с systemd какая-то другая ситуация. Настроил выключение-перезагрузку-спячку в файле /etc/sudoers без ввода пароля, из терминала он пароль не спрашивает, но через меню рабочего стола в xfce опять "пароль давай".

Оценка: 
Пока без оценки

Комментировать

Filtered HTML

  • Use [fn]...[/fn] (or <fn>...</fn>) to insert automatically numbered footnotes.
  • Доступны HTML теги: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <blockquote> <strike> <code> <h2> <h3> <h4> <h5> <del> <img>
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.

Plain text

  • HTML-теги не обрабатываются и показываются как обычный текст
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Строки и параграфы переносятся автоматически.