Горячие клавиши для выключения компьютера в 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 (4 votes)

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

Ваша оценка: Нет Средняя оценка: 4.3 (4 votes)
comrade

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

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

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

Ваша оценка: Нет Средняя оценка: 5 (1 vote)

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

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
comrade

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

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

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

Ваша оценка: Нет Средняя оценка: 4 (2 votes)

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

Ваша оценка: Нет

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

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

Ваша оценка: Нет Средняя оценка: 5 (2 votes)
comrade

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

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

Ваша оценка: Нет Средняя оценка: 5 (1 vote)

Необязательно же. Теоретически должно быть достаточно делать резервную копию файла перед каждой правкой, плюс задать пароль для 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

Ваша оценка: Нет
pomodor

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

Ваша оценка: Нет
comrade

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

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

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

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

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

Ваша оценка: Нет
pomodor

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

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

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

Ваша оценка: Нет
comrade

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

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

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

Ваша оценка: Нет

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

Ваша оценка: Нет
pomodor

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

Ваша оценка: Нет

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

Ваша оценка: Нет Средняя оценка: 5 (2 votes)
Intercessio

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

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
pomodor

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

Ваша оценка: Нет Средняя оценка: 5 (1 vote)

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

Ваша оценка: Нет Средняя оценка: 5 (1 vote)
comrade

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

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

Ваша оценка: Нет

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

Ваша оценка: Нет
Отправить комментарий
КАПЧА
Вы человек? Подсказка: зарегистрируйтесь, чтобы этот вопрос больше никогда не возникал. Кстати, анонимные ссылки запрещены.
CAPTCHA на основе изображений
Enter the characters shown in the image.