Как перезапустить linux из программы c++?

Что такое командная строка bash?

Bash расшифровывается как Bourne again shell (что возможно перевести как «Еще одна оболочка Борна»), название частично заимствованно от более ранешней версии командной оболочки UNIX, которая называлась просто Bourne shell («Оболочка Борна» – по имена разработчика Стивена Борна). Bash позволяет интерактивно взаимодействовать с компьютером, вводя некоторые команды и получая на них соответствующий отклик. Также этот командный процессор позволяет исполнять скрипты (команды из файла), может производить автодополнение названий файлов и директорий, благоволит использование переменных, операторов ветвления и цикла. Далее в статье будут приведены наиболее простые и необходимые для работы в bash команды, которые помогут вам сориентироваться и начать сами использовать командную строку для своих задач, но сначала необходимо перейти к интерфейсу инструктивной строки.

Командный интерпретатор bash – это один из нескольких интерпретаторов, доступных в Linux. Иное свое название – Bourne-again shell – интерпретатор bash получил в честь Стивена Борна (Stephen Bourne), творца его ранней версии (/bin/sh). По большей части bash совместим с sh, но содержит множество улучшений, касающихся как функциональность, так и возможности программирования. Bash сочетает возможности интерпретаторов Korn shell (ksh) и C shell (csh) и представляется POSIX-совместимым интерпретатором.

Изменение уровня выполнения

Существует несколько способов изменения уровня выполнения. Чтобы выполнить постоянное изменение, можно отредактировать файл /etc/inittab, установив в нем уровень выполнения по умолчанию, как это было показано в предыдущем разделе.

Если необходимо загрузить систему с определенным уровнем выполнения один раз, то вы также можете сделать это. Например, предположим, что вы только что установили новое ядро и хотите добавить несколько модулей после загрузки системы с новым ядром, но до загрузки системы X Window. Для этого вы можете загрузить систему с уровнем выполнения 3. Это делается во время загрузки либо путем редактирования строки ядра (при использовании загрузчика GRUB), либо путем добавления параметра после имени выбранной системы (при использовании LILO). Для указания требуемого уровня выполнения используется одна цифра (в нашем случае 3). Мы приведем пример для системы, в которой используется менеджер загрузки GRUB. Предположим, что в вашем файле /boot/grub/menu.lst содержатся строки, показанные в листинге 2.

Листинг 2. Типовые строки загрузочного меню GRUB в системе Fedora 8
title Fedora (2.6.26.8-57.fc8)
        root (hd0,5)
        kernel /boot/vmlinuz-2.6.26.8-57.fc8 ro root=LABEL=FEDORA8 rhgb quiet
        initrd /boot/initrd-2.6.26.8-57.fc8.img

Для перевода системы на уровень выполнения 3 дождитесь вывода на экран загрузочного меню, выберите нужную запись и нажмите ‘e’ для ее редактирования. В зависимости от настроек GRUB вам может потребоваться нажать клавишу для вывода загрузочного меню, а также набрать ‘p’ и ввести пароль для получения прав на редактирование. Загрузочное меню GRUB в нашей системе Fedora 8 выглядит так, как показано на рисунке 1.

Рисунок 1. Выбор варианта загрузки в меню GRUB

В этом примере вы должны увидеть строки root, kernel и initrd. Переместите курсор на строку, начинающуюся на «kernel» и нажмите ‘e’ для ее редактирования. Меню GRUB в нашей системе Fedora 8 должно принять вид в соответствии с рисунком 2.

Рисунок 2. Выбор записи ядра для изменения параметров

Теперь переместите курсор в конец строки и добавьте пробел и цифру ‘3’. При желании вы можете убрать параметр ‘quiet’ или изменить любые другие параметры. Меню GRUB в нашей системе Fedora 8 должно принять вид в соответствии с рисунком 3.

Рисунок 3. Установка уровня выполнения (уровень 3) во время загрузки

Наконец, нажмите Enter для сохранения изменений и ‘b’ для загрузки операционной системы.

Примечание. Если вместо GRUB вы используете LILO или GRUB2, то хотя данная процедура будет немного отличаться, основные принципы (редактирование параметров загрузки ядра) будут теми же самыми. Изображенные на наших рисунках экраны GRUB также могут выглядеть немного иначе в других дистрибутивах или на других компьютерах. Как правило, вам всегда доступны подсказки в виде приглашений.

После того, как вы закончите работы по настройке ядра на уровне выполнения 3, вероятно, вы захотите переключиться на уровень 5. К счастью, для этого нет необходимости перезагружать компьютер. Для переключения на другой уровень можно использовать команду . Чтобы проверить предыдущий и текущий уровни выполнения, используйте команду . Если первым символом вывода этой команды будет ‘N’, то это означает, что с момента загрузки системы уровень выполнения не изменялся. В листинге 3 приведены примеры проверки и изменения уровня выполнения.

Листинг 3. Проверка и изменение уровня выполнения
# runlevel
N 3
# telinit 5

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

Листинг 4. Проверка нового уровня выполнения
# runlevel
3 5

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

Листинг 5. На самом деле telinit является символической ссылкой на init
# ls -l $(which telinit)
lrwxrwxrwx 1 root root 4 2008-04-01 07:50 /sbin/telinit -> init

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

Выключение компьютера в Linux

1. shutdown

Самая простая и самая часто используемая команда выключения компьютера linux, отключит компьютер немедленно:

sudo shutdown -h now

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

Теперь попробуем запланировать выключение компьютера linux через пять минут:

sudo shutdown -h +5 «Компьютер будет выключен через 5 минут»

Мы запланировали вывод сообщения перед выключением.

Теперь давайте отменим выключение компьютера Linux:

sudo shutdown -c

Точно так же мы можем указать точное время выключения, например в девять вечера:

sudo shutdown -h 21:00

Как я уже говорил, не только команда shutdown linux умеет выключать компьютер, есть еще несколько утилит способных на это. Рассмотрим их тоже.

2. reboot

Команда reboot обычно используется для перезагрузки системы, но она также умеет выключать компьютер. Мы не будем ее подробно рассматривать, потому, что она еще проще команды shutdown. Для выключения нужно задать опцию -p:

3. halt

Эта команда тоже выключает компьютер. Только делает она это очень по-своему. Она не выполняет никаких подготовительных действий перед выключением, а просто отключает питание:

Использование halt может повредить систему

5. SysRq

Помните, в начале статьи, я говорил о сочетании клавиш для включения компьютера? Рассмотрим этот вопрос подробнее.

SysRq — это подсистема, реализованная на уровне ядра. Ядро обрабатывает все нажатия клавиш, а с помощью этой подсистемы, оно может принимать от пользователя команды, даже когда система полностью зависла. Основное предназначение этой подсистемы — работа с компьютером в проблемных ситуациях, например, если вы думаете что ваш компьютер заразил вирус, или компьютер завис и его нужно выключить. Для доступа к SysRq используются сочетания клавиш Alt+PrtScr+номер

Самое интересное, что мы можем выполнить безопасное выключение компьютера linux. Для этого зажмите клавиши Alt + PrtScr и поочередно нажимайте:

  • R — разблокировать клавиатуру
  • E — послать всем процессам сигнал SIGTERM
  • I — послать всем процессам сигнал SIGKILL
  • S — перенести все данные из кеша файловых систем на диск
  • U — перемонтировать файловые системы только для чтения
  • B — перезагрузить

Также вместо всего этого можно воспользоваться сочетанием клавиш Alt+PrtScr+O, в таком случае, вся процедура будет выполнена автоматически, эта команда поддерживается не всеми ядрами.

Init и Upstart

Как видите, в основе традиционного метода загрузки Linux-системы лежит процесс init операционной системы UNIX System V. В этом случае сначала загружается RAM-диск (initrd), а затем управление передается программе , которая обычно устанавливается в составе пакета sysvinit. Затем программа запускает в заранее определенном порядке ряд сценариев для загрузки системы. Если в процессе загрузки какие-то компоненты оказываются недоступными, то процесс init ждет, пока они станут доступными. Это корректно работает на компьютерах, в момент загрузки которых все устройства уже подключены и известны операционной системе. Однако при использовании современных компьютеров с поддержкой технологии «горячей замены», сетевых файловых систем и даже некоторых сетевых плат, которые могут быть недоступны в момент загрузки, могут возникнуть новые проблемы. Конечно же, ждать, пока система определит оборудование, которое может быть недоступным (относительно) долгое время, может оказаться не лучшим вариантом.

Альтернативный процесс инициализации под названием upstart был впервые представлен в 2006 году в дистрибутиве Ubuntu 6.10 (Edgy Eft). На сегодняшний день upstart вытеснил традиционный процесс init в Ubuntu и Fedora и прочих дистрибутивах Linux. Тем не менее, процесс init еще сохранился, а полная мощь upstart возможно, не реализована полностью.

В отличие от постоянных наборов сценариев инициализации, использовавшихся в более ранних дистрибутивах, подсистема upstart основана на событиях. События могут наступать при добавлении или удалении оборудования, запуске или остановке заданий, а также в результате работы других системных процессов. События используются для запуска задач или служб, вместе известных как задания. Так, например, подключение USB-накопителя может заставить службу udev послать системе событие block-device-added, которое приведет к запуску определенной задачи для проверки файла и монтирования файловой системы накопителя (если это возможно). Другим примером может являться Web-сервер Apache, запускающийся только в том случае, если доступны сетевое подключение и все файловые ресурсы.

Программа инициализации upstart замещает процесс /sbin/init. Задания upstart определены в директории /etc/init и ее поддиректориях. В настоящее время подсистема upstart обрабатывает файл /etc/inittab и сценарии инициализации System V. В таких дистрибутивах, как последние выпуски Fedora, файл /etc/inittab, вероятно, содержит только запись с идентификатором id для действия initdefault. В новейших дистрибутивах Ubuntu по умолчанию файл /etc/inittab отсутствует, хотя вы можете создать его, если захотите определить уровень выполнения по умолчанию.

Также в подсистеме upstart имеется команда initctl, которая позволяет взаимодействовать с демоном инициализации upstart. Это позволяет запускать или останавливать задания, выводить список заданий, получать их статусы, генерировать события, перезапускать процесс инициализации и так далее. В листинге 11 показано, как использовать для получения списка заданий upstart в операционной системе Fedora 13.

Листинг 11. Взаимодействие с демоном инициализации upstart с помощью initctl
$ initctl list
rc stop/waiting
tty (/dev/tty3) start/running, process 1486
tty (/dev/tty2) start/running, process 1484
tty (/dev/tty6) start/running, process 1492
tty (/dev/tty5) start/running, process 1490
tty (/dev/tty4) start/running, process 1488
plymouth-shutdown stop/waiting
control-alt-delete stop/waiting
system-setup-keyboard start/running, process 1000
readahead-collector stop/waiting
vpnc-cleanup stop/waiting
quit-plymouth stop/waiting
rcS stop/waiting
prefdm start/running, process 1479
init-system-dbus stop/waiting
ck-log-system-restart stop/waiting
readahead stop/waiting
ck-log-system-start stop/waiting
start-ttys stop/waiting
readahead-disable-services stop/waiting
ck-log-system-stop stop/waiting
rcS-sulogin stop/waiting
serial stop/waiting

Чтобы узнать больше о подсистеме upstart, обратитесь к разделу .

На этом наш обзор уровней выполнения, остановки и перезагрузки операционной системы Linux завершен.

Подпишите меня на уведомления к комментариям

Как выключить Кали Линукс из терминала: Shutdown

Самая серьёзная из команд, описываемых в статье. Она же команда “шатдаун” – то бишь “закрыть(ся)”. Если вы перешли на Линукс с Windows, а там подружиться с командной консолью cmd успели, ничего нового вы и здесь не обнаружите. Особенности команды:

  • может потребовать ввода пароля и префикса sudo
  • несёт возможность задать время выключения машины и…
  • …сообщить им о предстоящем выключении.

С sudo всё, думаю, ясно: если в текущем сеансе Линукс никаких активных пользователей, кроме вас, сейчас не работает, обойдёмся без sudo. В других случаях стоит начать команду на выключение именно с sudo. Так что, если Линукс является многопользовательской системой, работать придётся, видимо, именно с shutdown. Если же, например, в Кали никого кроме вас нет, подойдут команды из предпоследнего абзаца статьи. Далее. Технически команда shutdown для системы означает, что:

  • процессы завершаются в рабочем режиме, без “неожиданностей”
  • файловые системы синхронизированы
  • активность процессора минимальна.

Фактически команде shutdown должна предварять команда (состояние) “halt” – ещё одна; вы ещё не знакомы с ней – которая приказывает системе “остановиться”. И только после этого наступает “роweroff“-состояние. Т.е. отключение питания. Пока запомним этот факт, к нему вернёмся позже. Так что обычно команда shutdown применяется в контексте

shutdown +10 Заканчиваем через 10 минут!

где

  • shutdown – корень команды
  • +10 – флаг, указующий на задержку в минутах перед её исполнением
  • далее следует текст сообщения для пользователей.

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

shutdown -c

Отмену запланированного выключения пользователи также прочитают в терминале.

Характерный для команды факт. Простейший набор команды в виде

shutdown

отключит систему не мгновенно, а через 1 минуту. Если вы не собираетесь и минуты ждать, так и укажите:

shutdown +0

или

shutdown now

Что ещё… Планируем отключение по часам. Формат должен быть указан по типу ЧАСЫ:МИНУТЫ.

shutdown 22:30 Спать пора!

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

Как работать в терминале Linux

Ubuntu terminal – средство оправления системой Линукс.

Основные понятия:

  1. Под терминалом понимают такое пространство, в котором можно вводить разные запрашивающие выражения и получать на них определенные, заданные системой, ответы.
  2. Консоль является дополнительным способом связи с сервером при различных технических неполадках.
  3. TTY – общее место для управления искомым объектом в системе Линукс.
  4. Эмулятор – программа, в целом дающая доступ ко всем предыдущим элементам.
  5. Командная оболочка – часть 3-го элемента в этом списке. Ее цель – прием и передача данных.
  6. Командная строка – место ввода команд для терминала linux.

Базовые правила работы с ним и командами Убунту:

Искомый объект можно открыть 2 способами: либо перейти из главного меню в Dash и выбрать соответствующую вкладку, либо нажать одновременно клавиши Ctrl, Alt,T. Для выполнения команды в терминале Ubuntu достаточно ее написания и нажатия клавиши Enter. Также в этой операционной системе действует автодополнение. Поэтому если ввести половину команды в терминале ubuntu и нажать клавишу TAB один раз, то при только единственном выражении она будет дополнена. Особенно это касается команд консоли linux. Если вариантов много, то для выбора нужного на эту клавишу нужно нажать 2 раза. Предыдущий пункт работает аналогично для документов, папок, программ и приложений

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

В целом вид выражения можно записать в виде: утверждение – опция – параметр 1 – параметр 2.

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

Важно! Следует в точности выполнять описанные выше правила.

Файл /etc/inittab

Возможно, вам будет интересно, почему нажатие Ctrl-Alt-Delete в некоторых операционных системах приводит к перезагрузке, и каким образом устроены все эти уровни выполнения. Вы помните поле в файле /etc/inittab? Так вот, в файле /etc/inittab есть еще несколько полей, а в файловой системе присутствует набор сценариев инициализации, расположенных в каталогах, таких как rc1.d или rc5.d; цифра означает уровень выполнения, на котором выполняются сценарии из соответствующей директории. В листинге 8 показано полное содержимое файла inittab в нашей операционной системе Fedora 8.

Листинг 8. Полное содержимое файла inittab в ОС Fedora 8
#
# inittab       This file describes how the INIT process should set up
#               the system in a certain run-level.
#
# Author:       Miquel van Smoorenburg, 
#               Modified for RHS Linux by Marc Ewing and Donnie Barnes
#

# Default runlevel. The runlevels used by RHS are:
#   0 - halt (Do NOT set initdefault to this)
#   1 - Single user mode
#   2 - Multiuser, without NFS (The same as 3, if you do not have networking)
#   3 - Full multiuser mode
#   4 - unused
#   5 - X11
#   6 - reboot (Do NOT set initdefault to this)
#
id:5:initdefault:

# System initialization.
si::sysinit:/etc/rc.d/rc.sysinit

l0:0:wait:/etc/rc.d/rc 0
l1:1:wait:/etc/rc.d/rc 1
l2:2:wait:/etc/rc.d/rc 2
l3:3:wait:/etc/rc.d/rc 3
l4:4:wait:/etc/rc.d/rc 4
l5:5:wait:/etc/rc.d/rc 5
l6:6:wait:/etc/rc.d/rc 6

# Trap CTRL-ALT-DELETE
ca::ctrlaltdel:/sbin/shutdown -t3 -r now

# When our UPS tells us power has failed, assume we have a few minutes
# of power left.  Schedule a shutdown for 2 minutes from now.
# This does, of course, assume you have powerd installed and your
# UPS connected and working correctly.
pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down"

# If power was restored before the shutdown kicked in, cancel it.
pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled"


# Run gettys in standard runlevels
1:2345:respawn:/sbin/mingetty tty1
2:2345:respawn:/sbin/mingetty tty2
3:2345:respawn:/sbin/mingetty tty3
4:2345:respawn:/sbin/mingetty tty4
5:2345:respawn:/sbin/mingetty tty5
6:2345:respawn:/sbin/mingetty tty6

# Run xdm in runlevel 5
x:5:respawn:/etc/X11/prefdm -nodaemon

Как обычно, строки, начинающиеся с # – это комментарии. Остальные строки содержат несколько полей в следующем формате:

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

Некоторые действия, которые можно указать в файле /etc/inittab, перечислены в таблице 3. О других возможностях inittab вы можете узнать из man-страниц.

Таблица 3. Некоторые распространенные действия inittab
Действие Назначение
respawn Перезапустить процесс, если он завершается. Обычно используется для процессов getty, которые отслеживают входы в систему.
wait Запустить процесс при переключении на заданный уровень выполнения и ждать его завершения перед запуском init.
once Запустить процесс при переключении на заданный уровень выполнения.
initdefault Указывает уровень выполнения, переключение на который осуществляется после загрузки системы.
ctrlaltdel Запустить назначенный процесс при получении процессом init сигнала SIGINT (например, при нажатии CTRL-ALT-DEL на системной консоли).

В листинге 9 показана запись для комбинации Ctrl-Alt-Delete (фрагмент листинга 8). Итак, теперь вы видите, почему нажатие комбинации Ctrl-Alt-Delete приводит к перезагрузке системы.

Приложения, для которых нужно обеспечивать высокую доступность и надежность

Программное обеспечение ВД, конечно же, не может быть ориентировано на определенные и конкретные приложения. Необходимым интерфейсом с приложением выступают определенные скрипты для запуска и остановки приложения, которые запускаются по событиям «start service» а также «stop service» соответственно. Высокая надежность и доступность обеспечивается для какого-либо приложения и не требует при этом никакого взаимодействия при запуске с оператором, так как оно может запускаться в фоновом режиме.

Также с запуском приложения одновременно может запуститься и процесс, который управляет приложением и осуществляет некоторые процессы, необходимые для правильной и быстрой его передачи, в случае необходимости, резервному узлу. Именно для таких действий корректным было бы предусмотреть определенное взаимодействие с «менеджером кластера» и иными узлами кластера с помощью соответствующего API.

Также при построении кластера высокой надёжности Linux следует учитывать еще такие важные аспекты, как:

  • синхронизация времени между разными узлами кластера;
  • ведение соответствующего журнала конкретных системных событий кластера;
  • контроль над кластером и управление кластером по определенному протоколу SNMP.

Структура программного обеспечения ВД-кластера

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

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

Выделяют такие типы событий:

  1. события кластера;
  2. внешние события;
  3. события узла;
  4. положительные либо отрицательные оповещения о завершении определенных операций.

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

  1. Ничто не является отказавшим до тех пор, пока все «менеджеры кластера» («живые») не придут к соглашению, что именно это отказало.
  2. Ничего нельзя присоединить к кластеру до тех пор, пока все «менеджеры кластера» («живые») не придут к соглашению, что именно это является готовым к такому присоединению.
  3. В случае присоединения к кластеру нового узла все «живые» «менеджеры кластера» обязательно должны успешно закончить наборы действий (так называемые скрипты), которые соответствуют этому событию, до того как новый узел сможет исполнять свои скрипты.
  4. При неаварийном завершении работы узла он должен максимально корректно выйти из соответствующего кластера, а также выполнить перед выходом все необходимые скрипты.
  5. Аппаратный или программный kernel watchdog timer (сторожевой таймер в ядре) необходимо использовать с целью предотвращения всех зависаний узла (в целом, а также конкретно «менеджера кластера»). Кластер должен пребывать определенно в управляемом состоянии, а на случай сбоев в работе – в состоянии «менеджера кластера» на каком-нибудь узле; данный узел должен быть перезапущен или же остановлен.
  6. Модули коммуникации предназначены для того, чтобы обеспечивать определенное взаимодействие между всеми «менеджерами кластера» на узлах, а также для проверки состояния работоспособности иных «менеджеров кластера» такими методами, которые соответствуют выбранному способу сообщения между узлами (ATM отличается отсутствием IP Multicast от Ethernet, RS-232 отличается от IP и пр.).
  7. Существует определенный набор скриптов, осуществляющий операции по обработке событий, которые активизируют запускающиеся приложения, резервные адаптеры ЛВС, диски, монтирующие диски.
  8. Конфигурацию кластера необходимо хранить в определенной базе данных (неком конфигурационном файле нужного формата), а информация в ней должна определенным образом синхронизироваться между всеми соответствующими узлами кластера.

Избегайте не отвечающего программного обеспечения: обновите свое оборудование

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

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

Итак, в следующий раз, когда приложение или утилита Linux зависнет и перестанет отвечать на запросы, все, что вам нужно сделать, это применить одно из следующих решений:

  1. Нажмите X в углу.
  2. Используйте системный монитор.
  3. Используйте приложение xkill.
  4. Используйте команду kill.
  5. Закройте приложения с помощью pkill.
  6. Используйте killall, чтобы закрыть программное обеспечение.
  7. Создайте сочетание клавиш.

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

Рекомендуемый контент

Редактирование файла shadow

Самый простой способ отключения пользовательского аккаунта — редактирование файла /etc/shadow, который отвечает за хранение зашифрованных паролей пользователей, перечисленных в файле /etc/passwd. Вот типичная запись пользовательского пароля в /etc/shadow:

tester:$6$KYriHdKR$Yku3LWgJmomsynpcle9BCA:15711:0:99999:7:::

Для отключения аккаунта достаточно просто добавить «*» или «!» перед зашифрованным паролем:

tester:!$6$KYriHdKR$Yku3LWgJmomsynpcle9BCA:15711:0:99999:7:::

То же самое можно сделать с помощью команды:

$ usermod -L tester

Любой метод авторизации, использующий для аутентификации пользователя файл /etc/shadow, больше не будет работать, так как расшифровать пароль будет невозможно:

$ su tester
Password: 
su: Authentication failure

Для активации пользовательского аккаунта просто удалите «!» из файла /etc/shadow, или воспользуйтесь командой:

$ usermod -U tester

Важно помнить, что этот метод отключения пользовательских аккаунтов в Linux работает только для тех программ и команд, которые для аутентификации пользователей используют файл /etc/shadow. Например, если у пользователя уже есть ssh-ключ, он все равно сможет авторизоваться, несмотря на модификацию /etc/shadow

Установка и настройка Pacemaker в каждом узле кластераInstall and configure Pacemaker on each cluster node

  1. На обоих узлах кластера создайте файлы для хранения имени пользователя и пароля SQL Server для входа с помощью Pacemaker.On both cluster nodes, create a file to store the SQL Server username and password for the Pacemaker login. Следующая команда создает и заполняет такой файл:The following command creates and populates this file:

  2. В брандмауэрах на обоих узлах кластера откройте порты для Pacemaker.On both cluster nodes, open the Pacemaker firewall ports. Чтобы открыть эти порты с помощью , выполните следующую команду:To open these ports with , run the following command:

  3. Установите пакеты Pacemaker на каждом узле.Install Pacemaker packages on each node.

  4. Задайте пароль для пользователя по умолчанию, который создается при установке пакетов Pacemaker и Corosync.Set the password for the default user that is created when installing Pacemaker and Corosync packages. Используйте одинаковый пароль на обоих узлах.Use the same password on both nodes.

  5. Включите и запустите службу и Pacemaker.Enable and start service and Pacemaker. Это позволит узлам повторно подключаться к кластеру после перезагрузки.This will allow nodes to rejoin the cluster after the reboot. Выполните следующую команду на обоих узлах:Run the following command on both nodes.

  6. Установите агент ресурсов отказоустойчивого кластера для SQL Server.Install the FCI resource agent for SQL Server. Выполните следующие команды на обоих узлах:Run the following commands on both nodes.

Ссылка на основную публикацию