Перезапустите графическую оболочку Linux

Обновлено: 18.05.2024

Раньше я думал, что нажатие на кнопку перезагрузки GUI вызывает /sbin/reboot так же, как работает перезагрузка sudo. Однако теперь я понимаю, что для перезагрузки CLI требуется sudo, а для перезапуска GUI — нет. Есть ли разница между перезапуском в графическом интерфейсе и sudo reboot?

Я понимаю, что есть оболочка GUI и оболочка CLI, обе из которых обращаются к ядру. Можно ли отслеживать, какие исполняемые файлы запускаются для задач с графическим интерфейсом? В таком случае, есть ли способ узнать, какой исполняемый файл вызывается, когда я нажимаю кнопку перезагрузки?

1 Ответ 1

Можно ли отслеживать, какие исполняемые файлы запускаются для задач с графическим интерфейсом? В таком случае есть ли способ узнать, какой исполняемый файл вызывается, когда я нажимаю кнопку перезагрузки?

Его нет. Не все операции работают посредством запуска исполняемого файла. (И действительно, как этот исполняемый файл сам будет выполнять операцию?) В случае GNOME или KDE кнопка «Завершение работы» отправляет сообщения IPC системным службам — это может быть воспроизведено с помощью инструмента CLI, но не использует инструмент CLI сам по себе.

Для мониторинга вызовов D-Bus IPC используйте busctl monitor или dbus-monitor с опцией "--system", а для самостоятельной репликации операций через CLI используйте вызов busctl или вызов gdbus (или менее удобный dbus-send ) . Также доступен графический обозреватель D-Feet.

Вы можете отслеживать операции на уровне ядра программы, используя «strace», включая доступ к файлам, IPC, работу в сети и т. д. Например, strace -f -e execve -p $PID покажет вам, какие исполняемые файлы вызываются этим конкретным процессом.

Я понимаю, что есть оболочка с графическим интерфейсом и оболочка CLI, каждая из которых обращается к ядру.

Ни один из них на самом деле не запрашивает перезапуск ядра — это всегда привилегированная операция, поскольку она не остановит полностью никакие программы или службы; в лучшем случае он просто сбросит незаписанные файлы перед тем, как «выдернуть вилку».

Вместо этого все запросы на выключение или перезагрузку отправляются в систему «инициализации» (в большинстве случаев systemd, ранее upstart или sysvinit). Традиционно команда reboot отправляла сообщение через сокет /dev/initctl, хотя с systemd или upstart она использует D-Bus.

init запрашивает перезапуск ядра только в качестве самого последнего шага после закрытия всех служб и размонтирования файловых систем.

Есть ли разница между перезапуском в графическом интерфейсе и перезагрузкой с помощью sudo?

Команда CLI обращается непосредственно к 'init', для чего обычно требуется, чтобы вызывающая сторона была root'ом.

Кнопки графического интерфейса вместо этого отправляют сообщение в службу входа в систему (или, ранее, в ConsoleKit) с использованием D-Bus IPC, и именно эта служба запрашивает у "init" выполнить чистую перезагрузку.

Разница в том, что logind или CK сами по себе позволяют запросить перезагрузку от любого пользователя, если у него активен локальный сеанс, т. е. это человек, который в данный момент использует клавиатуру и дисплей. (Идея состоит в том, что локальный пользователь все равно может просто нажать физическую кнопку питания.)

Система инициализации systemd на самом деле поставляется с командой перезапуска systemctl, которая разрешает непривилегированную перезагрузку так же, как это делают графические интерфейсы — путем вызова logind. (Для ConsoleKit это необходимо написать с помощью 'gdbus' и т. д.)

Обратите внимание, что хотя logind инициирует перезагрузку так же, как и команда 'reboot', но, опять же, фактически запускает команду; он напрямую использует систему IPC.

Что происходит, когда ваш рабочий стол Linux зависает? Выключить или перезапустить? Что, если мы скажем вам, что вам тоже не нужно этого делать? Все, что вам действительно нужно сделать, это обновить рабочий стол.

Возможно, вы используете среду рабочего стола вместе с Linux. Будь то сверхлегкий или более полноценный, он вам понадобится, если вы хотите запускать графические приложения. Конечно, вы можете попробовать запустить все в терминале, но это просто глупо.

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

Зачем обновлять рабочий стол?

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

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

1. Корица

В некоторых средах рабочего стола обновление проще, чем в других. Cinnamon — одна из них, имеющая встроенную функцию, которую довольно легко найти. Это также довольно просто — командная строка не требуется.

Щелкните правой кнопкой мыши на любой из панелей рабочего стола Cinnamon. Убедитесь, что вы случайно не выбираете какие-либо апплеты на панели (в этом случае это не будет отображаться). Вы увидите раскрывающееся меню, которое позволит вам изменить Cinnamon несколькими способами, включая его перезапуск. Выберите «Устранение неполадок» > «Перезапустить Cinnamon».

Если вы любите сочетания клавиш, вам повезло. Корица может сделать это таким образом, а также. Просто зажмите Ctrl + Alt + Esc, и рабочий стол обновится. Имейте в виду, что это эксклюзивно для Cinnamon (например, в KDE этот ярлык позволяет вам закрыть приложение).

Ваш рабочий стол на мгновение отключится, а затем обновится. Это, надеюсь, означает, что любые проблемы, прежде чем он исчезнет. Красиво и просто.

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

Это достаточно легко исправить. Щелкните правой кнопкой мыши любую пустую часть панелей Cinnamon. Затем перейдите в раздел «Устранение неполадок» > «Восстановить все настройки по умолчанию».

2. ГНОМ

При установке расширений для настройки GNOME вы можете обнаружить, что изменения не всегда происходят мгновенно. Обновление GNOME может помочь решить эту проблему. Как и в Cinnamon, это можно сделать двумя способами: либо из командной строки, либо с рабочего стола. Но на заметку, оба подхода работают только в том случае, если вы используете систему X Window вместо более нового сервера отображения Wayland.

Чтобы использовать командную строку, введите эту команду в терминал:

Последние части команды очень важны. Без них, если вы закроете терминал, ваш рабочий стол перестанет работать. Таким образом, оболочка продолжит работу в фоновом режиме.

Если вы предпочитаете что-то менее строгое, вы всегда можете обновить GNOME графически. Для этого нажмите Alt + F2 и в появившемся поле ввода введите r, затем нажмите Enter.

3. Плазменный KDE

Рабочий стол KDE Plasma известен своей исключительной гибкостью. Твоя форма, как ты считаешь нужным. Это может усложнить некоторые задачи, и обновление рабочего стола не является исключением.

В отличие от GNOME, вам потребуется использовать терминал для перезапуска Plasma. Введите эту команду ниже:

Это остановит и запустит рабочий стол в одну строку. Обновление может занять несколько секунд, так что наберитесь терпения.

Если вы используете много пользовательских апплетов Plasma, вы можете сбросить настройки, если обнаружите, что это вызывает некоторую нестабильность. Для этого вам необходимо удалить (или переименовать) файл плазмы-org.kde.plasma.desktop-appletsrc, расположенный в вашей папке ~/.config. Или просто введите эту команду:

Не забудьте перезагрузить рабочий стол, чтобы увидеть изменения!

4. Xfce

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

Введите эту команду:

Как видите, для перезапуска Xfce достаточно двух связанных вместе команд. Вы можете ввести их отдельно, если хотите.

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

Xfce хранит свои настройки в группе файлов конфигурации. Тем не менее, он предоставляет вам простой способ доступа к ним, поэтому вам не нужно прикасаться к ним напрямую. Это приходит в виде приложения редактора настроек. Чтобы запустить его, введите эту команду:

Оттуда легко сбросить настройки панели Xfce: все, что вам нужно сделать, это щелкнуть правой кнопкой мыши нужные записи и выбрать «Сбросить». Не забудьте после этого перезагрузить панель!

Это также можно сделать полностью в командной строке с помощью инструмента xfconf-query. По сути, это просто редактор настроек в терминале. Чтобы сбросить настройки панели Xfce, введите следующие команды:

Все параметры в группе xfce4-panel будут удалены (отсюда и параметр -R -r), оставив значения по умолчанию после перезагрузки рабочего стола.

5. LXDE

Как и Xfce, LXDE — одна из самых легких сред рабочего стола. Это также означает, что единственный способ обновить его — через командную строку.

Для этого необходимо обновить сразу два компонента рабочего стола: панели и диспетчер окон. Традиционно LXDE использует Openbox (хотя вы можете изменить его, если хотите).

Поскольку это легкий рабочий стол, обновление займет всего секунду или около того.

Возможно, вы также захотите восстановить внешний вид LXDE по умолчанию.Это просто вопрос перемещения правильных файлов конфигурации. Все, что вам нужно сделать, это переименовать (или удалить) правильные. Они будут заменены после обновления рабочего стола.

По теме: Что такое файлы конфигурации? Как их безопасно редактировать Например, если вы хотите восстановить расположение панелей LXDE, вам нужно удалить/изменить папку ~/.config/lxpanel. Он содержит все файлы конфигурации для панели. Вы можете сделать это либо графически, либо в терминале.

Приведенная выше команда переименовывает папку lxpanel, заставляя LXDE создать ее заново.

То же самое можно сделать и с Openbox, переименовав папку ~/.config/openbox во что-то другое.

Ярлыки

Если вам приходится много раз обновлять рабочий стол, вам может быть интересно использовать псевдонимы команд. Это позволит вам ввести более короткую команду терминала для простоты использования. Они расположены в скрытом файле с именем .bashrc (.zshrc, если вы используете Zsh). В этом руководстве мы покажем, как создавать псевдонимы команд в Bash, но шаги более или менее одинаковы для каждой оболочки.

Для этого сначала откройте файл с помощью этой команды:

Оттуда вы можете добавить свои псевдонимы, используя этот формат:

Если вы наберете Refresh в только что открытом терминале, вы запустите назначенные команды. Не забудьте заключить эти команды в кавычки и разделить знаками &&!

Исправить неотвечающие рабочие столы Linux с помощью обновления

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

В этом случае лучше перезагрузить систему; мягкие обновления могут только зайти так далеко. Но если вас беспокоит одно приложение, может быть быстрее убить только это конкретное приложение. У вас есть несколько способов убить не отвечающие программы в Linux!

об исправлении зависшего сеанса рабочего стола gnome

В следующей статье мы рассмотрим, что мы можем сделать, если столкнемся с зависшим сеансом Gnome. В настоящее время многие люди используют Gnome Shell, поскольку он надежен, прост в использовании и работает быстрее и быстрее. Однако даже у лучших столов есть проблемы.

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

Оглавление

Как перезапустить зависший сеанс Gnome

Способ 1: перезапустить X11

Gnome Shell имеет встроенную функцию перезапуска. Пользователи могут запустить его, чтобы перезапустить зависший рабочий стол. Единственным недостатком является то, что это не работает с wayland, поэтому мы должны использовать "Xorg", чтобы это работало.

Чтобы перезапустить сеанс Gnome Shell, пока все зависло, мы начнем нажимать комбинацию клавиш Alt + F2. Это вызовет окно, в котором мы можем писать команды.

В этом окне нам нужно будет только написать 'r'. Эта команда в основном перезапускает сеанс, не закрывая его.

 выполнить заказ с рабочего стола

Мы сможем делать это столько раз, сколько захотим, если один перезапуск не решит проблему.

Способ 2: перезапуск Wayland

Если вы используете Wayland для Gnome, вы заметите хорошую производительность, но даже несмотря на это могут быть сбои сеанса. К сожалению, здесь функция сброса не работает. Потребуется еще многое сделать, чтобы восстановить контроль над командой.

Чтобы перезапустить сеанс, в этом случае мы не сможем работать в среде рабочего стола Gnome. Вместо этого нам придется использовать консоль TTY и принудительно перезапустить администратора рабочего стола, который обрабатывает Gnome, и, таким образом, иметь возможность перезапустить сеанс. Чтобы открыть консоль, мы можем использовать комбинации клавиш Ctrl + Alt + F2 или Ctrl + Alt + F3.

Оказавшись в окне консоли TTY, нам нужно будет войти в систему. Если все правильно, мы получим доступ к командной строке в режиме TTY. Отсюда нам нужно будет следовать пошаговым инструкциям, чтобы перезапустить наш сеанс:

Шаг 1. С помощью команды systemctl stop мы остановим выполнение диспетчера экрана Gnome. Это приведет к автоматическому выходу из оболочки Gnome:

Если вы используете LightDM с Gnome, вместо команды вам придется использовать:

Шаг 2. При выполнении команды stop работа gdm или lightdm прекращается. Отсюда мы запустим его снова, используя команду запуска:

Для LightDM команда для выполнения будет следующей:

Если команды выполнены правильно, мы должны увидеть экран входа в Gnome. Оттуда мы можем снова войти в систему.

Способ 3: использование gnome-shell –replace

Если вы пробовали описанные выше методы Xorg и Wayland, но по-прежнему не смогли решить проблемы, есть еще третий способ перезапустить сеанс Gnome Shell во время зависания. Аргумент «replace» работает аналогично тому, что мы сделали с Wayland, поскольку должен быть запущен на терминале TTY. Мы получим доступ к нему с помощью комбинаций клавиш Ctrl + Alt + F2 или Ctrl + Alt + F3.

Как я читал там, это решение работает со всеми версиями Gnome Shell, включая Wayland.

В терминале TTY мы собираемся войти в систему с нашим пользователем и следовать следующим инструкциям:

Сначала мы создадим файл с именем "gnome-restart" с помощью команды touch:

Следующее будет использовать команду echo. С помощью которого мы собираемся добавить код сброса в файл gnome-restart, прописав в терминале сначала строку:

А затем другая строка:

Мы обновим права доступа к файлу gnome-restart', который мы только что создали, чтобы мы могли запускать его как программу из терминала:

Следующее будет перемещено в файл 'gnome-restart' в /usr/bin/. Этим мы добьемся того, что система сможет вызывать его как программу:

gnome-restart

В терминале TTY нам нужно будет написать gnome-restart, чтобы перезапустить замороженный сеанс Gnome Shell. Мы также можем выполнить эту команду прямо с рабочего стола Gnome, нажав Alt + F2, чтобы открыть командное окно, в котором мы напишем:

После успешного выполнения команды наш сеанс должен снова работать.

Способ 4: использование Killall


После всего сказанного, когда происходит сбой сеанса Gnome, я думаю, что это самый простой способ перезапустить его. Нам останется только написать по телетайпу:

Приведенную выше команду мы также можем использовать как псевдоним в файле ~/.bashrc следующим образом:

aka add гном killall

После сохранения файла, когда сеанс рабочего стола заморожен, в TTY нам нужно будет только написать:

С помощью этой команды мы принудительно закроем заблокированный сеанс.

Содержание статьи соответствует нашим принципам редакционной этики. Чтобы сообщить об ошибке, нажмите здесь!.

Узнайте, как перезагрузить Linux различными способами, от графического интерфейса до командной строки.

Tux с фоном двоичного кода

Смокинг от lewing@isc.tamu.edu Ларри Юинга и GIMP; бинарное изображение Геральта через Pixabay; изменено Джен Вике Хьюгер

Linux вполне способен работать не недели, а годы без перезагрузки. В некоторых отраслях это именно то, что делает Linux, благодаря таким достижениям, как kpatch и kgraph.

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

Разберитесь со своими вариантами

Прежде чем продолжить, примечание о перезагрузке. Перезагрузка — уникальный процесс в каждой операционной системе. Даже в системах POSIX команды выключения питания и перезагрузки могут вести себя по-разному из-за разных систем инициализации или структуры команд.

Несмотря на этот фактор, важны две концепции. Во-первых, в системе POSIX редко требуется перезагрузка. Ваша Linux-машина может работать неделями или месяцами без перезагрузки, если вам это нужно. Нет необходимости «освежать» компьютер с помощью перезагрузки, если это специально не рекомендовано установщиком программного обеспечения или программой обновления. Опять же, перезагрузка тоже не помешает, так что решать вам.

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

Нажмите кнопку

Первый способ перезагрузки или выключения Linux является наиболее распространенным и наиболее интуитивно понятным для большинства пользователей настольных компьютеров независимо от их ОС: это кнопка питания в графическом интерфейсе. Поскольку выключение и перезагрузка являются обычными задачами на рабочей станции, обычно вы можете найти кнопку питания (обычно с параметрами перезагрузки и выключения) в нескольких разных местах. На рабочем столе GNOME он находится на панели задач:

Кнопка питания GNOME.

Он также находится в меню действий GNOME:

Кнопка питания меню действий GNOME.

На рабочем столе KDE кнопки питания находятся в меню "Приложения":

Кнопки питания KDE через меню

Кнопки питания KDE с помощью опции

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

Нажмите физическую кнопку

На большинстве компьютеров есть физическая кнопка питания. Если вы нажмете эту кнопку, на рабочем столе Linux может отобразиться меню питания с параметрами выключения или перезагрузки. Эта функция обеспечивается подсистемой расширенного интерфейса конфигурации и питания (ACPI), которая взаимодействует с прошивкой вашей материнской платы для управления состоянием вашего компьютера.

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

В GNOME откройте меню на панели задач и выберите «Действия», а затем «Настройки». Далее выберите категорию «Мощность» в левом столбце, после чего откроется следующее меню:

Настройки кнопки питания GNOME.

В разделе "Приостановка и кнопка питания" выберите, что должна делать физическая кнопка питания.

Процесс одинаков для компьютеров. Например, в KDE панель управления питанием в настройках системы содержит параметр для обработки событий кнопок.

KDE Power Management

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

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

Запустите команду systemctl

Если вы больше работаете в терминале, чем на рабочем столе с графическим интерфейсом, вы можете перезагрузить компьютер с помощью команды. Вообще говоря, перезагрузка и выключение — это процессы системы инициализации — последовательность программ, которые включают или выключают компьютер после получения сигнала питания (соответственно включения или выключения).

В большинстве современных дистрибутивов Linux systemd является системой инициализации, поэтому перезагрузка и выключение могут выполняться через пользовательский интерфейс systemd, systemctl. Команда systemctl принимает, помимо многих других параметров, halt (останавливает работу диска, но не отключает питание), reboot (останавливает работу диска и отправляет сигнал сброса на материнскую плату) и poweroff (останавливает работу диска, а затем отключает питание). Эти команды в основном эквивалентны запуску целевого файла с тем же именем.

Например, чтобы вызвать перезагрузку:

Выполнить команду выключения

В традиционной UNIX до появления systemd (а для некоторых дистрибутивов Linux, таких как Slackware, это сейчас) существовали специальные команды для остановки системы. Команда выключения, например, может отключить компьютер, но у нее есть несколько опций, точно определяющих, что это означает.

Для этой команды требуется аргумент времени в минутах, чтобы команда shutdown знала, когда ее выполнять.Для немедленной перезагрузки добавьте флаг -r:

Чтобы немедленно отключить питание:

Или вы можете использовать команду poweroff:

Чтобы перезагрузить компьютер через 10 минут:

Команда shutdown — это безопасный способ выключения или перезагрузки компьютера, позволяющий синхронизировать диски и завершить процессы. Эта команда предотвращает новые входы в систему в течение последних 5 минут после начала выключения, что особенно полезно в многопользовательских системах.

Сегодня во многих системах команда shutdown на самом деле представляет собой просто вызов systemctl с соответствующей опцией перезагрузки или отключения питания.

Запустите команду перезагрузки

Команда перезагрузки сама по себе теперь представляет собой ярлык для выключения -r. Это самая простая и быстрая команда перезагрузки из терминала:

Если ваша система заблокирована от завершения работы (возможно, из-за неконтролируемого процесса), вы можете использовать флаг --force, чтобы заставить систему завершить работу в любом случае. Однако этот параметр пропускает процесс фактического завершения работы, который может быть внезапным для запущенных процессов, поэтому его следует использовать только в том случае, если команда завершения работы не позволяет вам выключить питание.

Во многих системах перезагрузка на самом деле является вызовом systemctl с соответствующей опцией перезагрузки или отключения питания.

В дистрибутивах Linux без systemd существует до 7 уровней выполнения, понятных вашему компьютеру. Различные дистрибутивы могут назначать каждый режим уникальным образом, но обычно 0 инициирует состояние остановки, а 6 инициирует перезагрузку (цифры между ними обозначают такие состояния, как однопользовательский режим, многопользовательский режим, приглашение графического интерфейса пользователя и текстовое приглашение). .

Эти режимы определены в /etc/inittab в системах без systemd. В дистрибутивах, использующих systemd в качестве системы инициализации, файл /etc/inittab либо отсутствует, либо является просто заполнителем.

Команда telinit является внешним интерфейсом к вашей системе инициализации. Если вы используете systemd, то эта команда является ссылкой на systemctl с соответствующими параметрами.

Чтобы выключить компьютер, отправив его на уровень выполнения 0:

Чтобы перезагрузить тем же способом:

Насколько небезопасна эта команда для ваших данных, полностью зависит от вашей конфигурации инициализации. Большинство дистрибутивов пытаются защитить вас от отключения питания (или цифрового эквивалента этого), сопоставляя уровни запуска с понятными командами.

Вы можете сами увидеть, что происходит на каждом уровне выполнения, прочитав сценарии инициализации, найденные в /etc/rc.d или /etc/init.d, или прочитав цели systemd в /lib/systemd/system/.< /p>

Применить грубую силу

До сих пор я рассмотрел все правильные способы перезагрузки или выключения компьютера с Linux. Чтобы быть тщательным, я включаю здесь дополнительные методы вывода из строя компьютера с Linux, но ни в коем случае не рекомендую эти методы. Они не предназначены для ежедневной перезагрузки или выключения (для этого существуют перезагрузка и выключение), но они являются допустимыми средствами для выполнения задачи.

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

Ступенью ниже, чем система инициализации, находится файловая система /proc, которая представляет собой виртуальное представление почти всего, что происходит на вашем компьютере. Например, вы можете просмотреть свои ЦП, как если бы они были текстовыми файлами (с помощью cat /proc/cpuinfo), посмотреть, сколько энергии осталось в батарее вашего ноутбука, или, после мода, перезагрузить вашу систему.

В ядре Linux есть возможность для системных запросов (Sysrq на большинстве клавиатур). Вы можете напрямую общаться с этой подсистемой, используя комбинации клавиш, в идеале независимо от того, в каком состоянии находится ваш компьютер; на некоторых клавиатурах это становится сложным, поскольку клавиша Sysrq может быть специальной функциональной клавишей, для доступа к которой требуется другая клавиша (например, Fn на многих ноутбуках).

Вариант с меньшей вероятностью неудачи – использование команды echo для вставки информации в /proc вручную. Во-первых, убедитесь, что система Sysrq включена:

Для перезагрузки вы можете использовать Alt+Sysrq+B или ввести:

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

Сисктл

Параметры ядра можно управлять во время выполнения с помощью sysctl. Есть много параметров ядра, и вы можете увидеть их все с помощью sysctl --all. Скорее всего, это ничего для вас не значит, пока вы не знаете, что искать, и в этом случае вы ищете kernel.panic.

Вы можете запросить параметры ядра, используя параметр --value:

Если вы получите 0, значит, ядро, в котором вы работаете, не имеет специальных настроек, по крайней мере, по умолчанию, для перезагрузки при панике ядра. Такая ситуация довольно типична, поскольку немедленная перезагрузка при катастрофическом системном сбое затрудняет диагностику причины сбоя. С другой стороны, системы, которые должны оставаться включенными, несмотря ни на что, могут выиграть от автоматического перезапуска после сбоя ядра, поэтому в некоторых случаях этот параметр действительно включается.

Вы можете активировать эту функцию в качестве эксперимента (если вы продолжаете, попробуйте это на виртуальной машине, а не на реальном компьютере):

Теперь, если ваш компьютер испытывает панику ядра, он настроен на перезагрузку вместо того, чтобы терпеливо ждать, пока вы диагностируете проблему. Вы можете проверить это, смоделировав катастрофический сбой с помощью sysrq. Во-первых, убедитесь, что Sysrq включен:

А затем смоделируйте панику ядра:

Ваш компьютер немедленно перезагрузится.

Перезагружайтесь ответственно

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

Не упустил ли я ваш любимый метод перезагрузки или выключения системы? Напишите в комментариях, что я пропустил!

Читайте также: