Текстовый режим в Linux (No Gnome, KDE, Unity) для продления времени автономной работы


14

Если я захочу полностью отключить мой графический интерфейс для экономии заряда батареи, как мне поступить?

Я знаю, что могу нажать Ctrl + Alt + F3 и быть в командной строке, но менеджер рабочего стола все еще будет в фоновом режиме (я полагаю).

Итак, после Ctrl + Alt + F3 мне нужно три команды:

  • подскажите время автономной работы от командной строки
  • близкие окружения рабочего стола

Имеет ли это смысл?

Ответы:


11

Если я захочу полностью отключить мой графический интерфейс для экономии заряда батареи, как мне поступить?

Вы можете просто отключить Диспетчер отображения (будь то kde, lightdm, gdm и т. Д.) Для запуска при загрузке, просто запустите в зависимости от вашей системы:

sudo update-rc.d gdm remove
sudo update-rc.d kdm remove
sudo update-rc.d lightdm remove

При этом вам не нужно останавливать менеджер рабочего стола после загрузки. Но если вы не хотите этого, sudo /etc/init.d/<display_manager_name> stopзакройте менеджер рабочего стола после загрузки:

sudo service gdm stop
sudo service kdm stop
sudo service lightdm stop

Это будет работать в любой системе, которая использует upstart, например, Debian и производные.

Если ваша система использует systemd, вы можете использовать systemctl:

## All the next lines are executed as root
systemctl disable gdm ## or gdm3
systemctl disable kdm
systemctl disable lightdm
systemctl disable <name_of_the_service>

подскажите время автономной работы от командной строки

Чтобы увидеть состояние вашей батареи, вы можете либо установить и запустить screen/ byobu(который является диспетчером экрана и покажет процент заряда батареи + другую статистику), либо работать acpi -b.

близкие окружения рабочего стола

Проверьте мой предыдущий ответ.

Я знаю, что могу нажать Ctrl + Alt + F3 и быть в командной строке, но менеджер рабочего стола все еще будет в фоновом режиме (я полагаю).

Ctrl+ Alt+ F1-6Просто переключит вас на один из терминала. Все программы, которые вы запускаете, будут выполняться в фоновом режиме.


2
sudo service gdm stopне отключит его при загрузке, а просто остановит службу. Для заданий Upstart sudo mv /etc/init/gdm.conf{,.norun}отключить.
Бонсайвинг

@bonsaiviking нет конфигурационного файла /etc/initдля gdm, kdm или lightdm, gdm хранит их в /etc/dbus-1/system.d/, kdm в /etc/default.
Брайам

тогда они не Upstart рабочих мест. Это может быть то место, где они хранят конфигурацию, но в этом случае сервис, вероятно, является сценарием инициализации System V в /etc/init.d/, управляемом символическими ссылками rc. Используйте sudo update-rc.d gdm disableвместо этого.
Бонсайвинг

В ОС без системы вы также можете выбрать уровень выполнения во время выполнения. Просто нажмите «e» в меню Grub2 и добавьте init Nв строку загрузки ядра ( Nнапример, 3для многопользовательских приложений Cli с включенной сетью). Источник
tuk0z

4

Кто-то упомянул, initтак почему бы не использовать его с указанным уровнем запуска? У меня на Xubuntu latest 1 работает.

$ runlevel  \\just to show your actual runlevel, expect N 2.
$ sudo telinit $runlevel
   where $runlevel is either:
    0 : System halt.
    1 : Single-User mode.
    2 : Graphical multi-user plus networking (DEFAULT)
    3 : Same as "2", but not used.
    4 : Same as "2", but not used.
    5 : Same as "2", but not used.
    6 : System reboot.

Затем можно остановить менеджеры рабочего стола в состоянии предварительного ответа или изменить конфигурацию различными способами .

Наконец, если бы вы работали в Solaris или аналогичном , вы бы использовали либо, initлибо svcadmи «who -r» для отображения текущего уровня выполнения.


Я согласен. Какое-то время у меня была система, которая по умолчанию установила уровень запуска 3, и я изменил бы уровень запуска на 5, когда мне нужен графический интерфейс, и обратно, когда я закончил.
Кевин

В то время как в системах SysvInit (то есть без systemd) у меня всегда было что-то немного другое (пишу только там, где это отличается): $ runlevel is any: 2: unused; 3: Cli многопользовательский плюс сети; 4: не используется; 5: Графический многопользовательский плюс сеть.
tuk0z

2

Проблема в том, что в большинстве дистрибутивов Linux initпроцесс запускает оконный менеджер на своем собственном терминале, поэтому:

  1. Чтобы убить весь графический интерфейс, вам нужно быть пользователем root
  2. Даже если вы убьете X-сервер как root, init он автоматически перезапустит его, так как он занимает один из ваших виртуальных терминалов.

Итак, вам придется настроить вашу систему так, чтобы графический интерфейс не запускался initпри запуске, что позволит вам запускать и завершать ее вручную в обычном tty. Это не очень удобно, но возможно. Найдите файл с именем /etc/inittabи обратитесь к документации по вашему дистрибутиву, чтобы узнать, как предотвратить initзапуск графического интерфейса. Это может быть просто строка для удаления или комментирования.

Что касается вашего другого вопроса, вы можете узнать состояние батареи, просто набрав команду acpi.


1

Часть, рассказывающая о времени автономной работы, проще, я бы использовал для этого byobu или аналогичную утилиту. Эти менеджеры хороши тем, что они отделяют сеансы от терминалов, что означает, что вы даже можете начать свою работу в DE в byobu, а затем просто убрать DE и продолжить в tty.

Или вы можете реализовать это в оболочке (мышление $PS1и функция bash).

Для части zapping закрытие DE означает закрытие всех программ, запущенных внутри этой программы, что может означать потерю данных. Это можно рассматривать как причину, по которой вам нужен root-доступ.

Тем не менее, если вы действительно этого хотите и хотите иметь возможность делать это быстро в любое время, вы можете написать для этого скрипт, «передать» его корню и установить бит setuid, чтобы, если кто-нибудь запустит этот конкретный скрипт, он запустился как root без дальнейшей аутентификации . Что делает это немного сложнее, так это то, что некоторые дистрибутивы не позволяют вам делать это с помощью скриптов . Эту проблему можно решить, создав обертку C, которая будет работать execдля вас, и вместо этого использовать эту обертку.

Я бы, вероятно, пошел с этим подходом, а также рассмотрел бы дополнительные функции, такие как отказ от zapping, если он запускался из DE, немедленное удаление zapping (например, период 60-х годов) или сопоставление его с ключом в Byobu.


0

Недавно я обнаружил хороший пакет, grml-rescuebootкоторый называется, который при установке на вашем компьютере позволяет вам помещать ISO-образ в каталог / boot / grml, а затем, когда вы запускаете команду update-grub, добавит его в вашу загрузку grub как нечто для загрузки.

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

Более подробную информацию о том, как установить этот пакет, можно найти в большинстве дистрибутивов. Просто установите его и прочитайте справочную страницу.


-1

Просто init 3 запустите систему в текстовом режиме.

или отредактируйте / etc / inittab и измените уровень запуска на 3, если вы хотите, чтобы графический интерфейс изменил уровень запуска на 5


Если вы хотите запустить свою систему без GUI. просто запустите #init 3 или, если вы хотите запустить свою систему в текстовом режиме, измените / etc / inittab на уровень 3, всегда можно изменить на Init 5.
Bill
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.