Контакти

Перезавантажити лінукс з командного рядка. М'яка перезавантаження і миттєве вимкнення комп'ютера в Ubuntu. Передача призначеного для користувача повідомлення

Розглянемо, як перезавантажити або вимкнути комп'ютер з командного рядка. Я користуюся цим, коли при установці якого-небудь драйвера або при сильному навантаженню на процесор, інтерфейс перестає реагувати на мої дії (хоча це трапляється вкрай рідко). Можна вбити «ненажерливий» процес через командний рядок, але не завжди відомо який це процес, тому швидке рішення це перезавантаження комп'ютера.

перезавантажуємо комп'ютер

Я роблю так. Переходжу в консоль натисненням поєднання клавіш Ctrl + Alt + F1. В консолі ви повинні спочатку ввести свій логін і пароль (при введенні пароля символи не відображаються). І виконую команду:

Sudo reboot

Вам знову потрібно буде ввести пароль адміністратора і натиснути Enter. Розпочнеться перезавантаження комп'ютера.

Для перезавантаження комп'ютера можна також використовувати команду shutdown, Для цього потрібно використовувати ключ -r:

Sudo shutdown -r now

вимикаємо комп'ютер

Щоб вимкнути комп'ютер з командного рядка, то потрібно виконати команду:

Sudo shutdown -h now

Також комп'ютер можна вимкнути за допомогою команди:

Sudo halt

А також можна використовувати.

Ця стаття орієнтована на самих новачків в Linux ну і тих кого цікавить як перезавантажити Linux з консолі. Для мене перезавантажити комп'ютер в терміналі або за допомогою графічного інтерфейсу це елементарно, але це база, не всі новачки її знають і треба про це написати.

Сьогодні ми розглянемо такі питання, як команда перезавантаження Linux з консолі, перезавантаження віддалено, і безпосередньо перезавантаження в графічному інтерфейсі. Почнемо, мабуть, з звичайного перезавантаження системи.

Тут, як то кажуть, що може бути простіше. Розглянемо спочатку перезавантаження в Ubuntu Unity. Досить натиснути на кнопку з шестерінкою в правому верхньому кутку екрану, і вибрати пункт вимкнення:

Потім в вікні, клікнути по пункту:

В оточенні робочого столу Gnome, все дуже схоже на Unity, а в KDE потрібно відкрити головне меню, перейти на вкладку вихід, І вибрати пункт перезавантажити:

Потім підтвердити перезавантаження.

А тут уже простір набагато ширше, існує близько десятка команд, якими можна перезавантажити Linux. Одним потрібні root привілеї, іншим ні, одні виглядають просто і легко запам'ятовуються, а інші довгі і складні. Далі ми розглянемо їх все.

Перша команда перезавантаження Linux, найпоширеніша і найпростіша:

Як бачите, утиліті потрібні права суперкористувача. Після натискання Enter комп'ютер відразу піде в перезавантаження.

Утиліта shutdown, яка використовується для виключення теж дозволяє перезавантажити комп'ютер для цього потрібно передати їй параметр -r. Плюс до того ж можна вказати час перезавантаження. Зараз - 0 або now, через одну хвилину +1 через дві - +2 і т д:

sudo shutdown -r +1

У системах ініціалізації сумісних з Init Scripts, існували рівні завантаження системи - 0,1,2,3,4,5,6, рівень 0 - означав виключення, 6 перезавантаження, інші режими роботи системи нас зараз не цікавлять. Перемикатися між рівнями можна командою init. Тільки знову ж потрібні права суперкористувача. Таким чином:

Служба системних повідомлень dbus теж вміє перезавантажувати комп'ютер:

/ Usr / bin / dbus-send --system --print-reply --dest \u003d "org.freedesktop.ConsoleKit" / org / freedesktop / ConsoleKit / Manager org.freedesktop.ConsoleKit.Manager.Restart

Тут вже не потрібні права суперкористувача. Це були звичайні способи перезавантаження Linux, але є ще один, нестандартний або навіть два. Це магічні SysRq клавіші. Ядро Linux відстежує натискання певних сполучень клавіш, і у відповідь на них виконує потрібні дії. Спочатку включаємо підтримку sysrq:

echo 1\u003e / proc / sys / kernel / sysrq

Краще це зробити завчасно, так як цей спосіб корисний коли система зависла і ні на що не реагує:

nano /etc/sysctl.conf

kernel.sysrq \u003d 1

для активації SysRq поєднання затисніть Alt + SysRq і натисніть код клавіші. Для нормальної перезавантаження рекомендується використовувати наступну послідовність: R E I S U B, Клавіші натискати в тій же послідовності з інтервалом приблизно секунду.

  • R - повертає управління клавіатурою якщо Х сервер був завершений некоректно;
  • E - ядро \u200b\u200bпосилає всім процесам, крім init сигнал SIGTERM;
  • I - відправляє всіх процесів, крім init сигнал SIGKILL;
  • S - ядро \u200b\u200bпроводить синхронізацію файлових систем, всі дані з кешу переносяться на жорсткий диск;
  • U - перемонтують все файлові системи в режим тільки читання;
  • B - негайна перезавантаження, без синхронізації, і додаткових приготувань.

Перед перезавантаженням система очікує завершення всіх процесів, зупиняє всі сервіси, відключає і монтує в режимі тільки читання файлові системи. Це ми і робимо, натискаючи послідовно ці комбінації клавіш. Але якщо вам потрібно перезавантажити систему зараз не чекаючи відключення всіх процесів, наприклад, сервер, можна відразу відправити сигнал B. Ось так: Alt + SysRq + B.

SysRq можна задіяти і без поєднань клавіш, записавши потрібний код операції в файл / proc / sysrq-trigger:

echo b\u003e / proc / sysrq-trigger

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

Якщо у вас є доступ до сервера по ssh то можна дуже просто віддалено перезавантажити linux за допомогою однієї з вище наведених команд, наприклад:

ssh [Email protected] / Sbin / reboot

Тільки знову ж для цієї операції потрібно мати права root на віддаленому сервері.

висновки

Тепер ви знаєте як виконується перезавантаження linux, ви навіть знаєте і як перезавантажити сервер по ssh. Якщо у вас залишилися питання, питайте в коментарях!

Схожі записи:


Команда «shutdown» безпечно відключає систему. Все що увійшли в систему користувачі отримують повідомлення про те, що система вимикається, а операції входу блокуються. Можна відразу вимкнути систему або після зазначеної затримки.

Вимкнення Linux з командного рядка є дуже зручним, і багато користувачів системи управляють своїм ПК через командний рядок в таких речах. Всі процеси спочатку повідомляються про те, що система готується до режиму сну або перезавантаження через SIGTERM. Це дає програмам, таким як vi, час, щоб зберегти редагований файл, програми обробки пошти та новин, можливість виходу з системи і т. Д.

«Shutdown» виконує свою роботу, сигналізуючи процесу init, просячи його змінити рівень запуску. Рівень запуску 0 використовується для зупинки системи, рівень запуску 6 використовується для перезавантаження системи, а рівень запуску 1 використовується для перекладу системи в стан, в якому адміністративні завдання можуть виконуватися (однокористувальницький режим). Рівень запуску 1 за замовчуванням, якщо не вказані опції -h або -r.

У вашій системі може бути інший набір параметрів для команди завершення роботи; Перевірте документацію пристрою.

Вимкнення Linux з командного рядка

shutdown [-akrhPHfFnc] [-t sec] time [message]

  1. -a Керувати доступом до команди shutdown, використовуючи файл доступу до управління /etc/shutdown.allow. Для отримання додаткової інформації см. Розділ «Контроль доступу» нижче.
  2. -k Не вимикайте, а відправляйте попереджувальні повідомлення, ніби вимикання було реальним.
  3. -h Вказує системі завершити роботу, а потім зупинити її.
  4. -P Доручає системі завершити роботу, а потім вимкнути.
  5. -H Якщо вказано параметр -h, ця опція вказує, що система повинна завантажуватися в монітор завантаження в системах, які його підтримують.
  6. -f Пропустити fsck після перезавантаження.
  7. -F Примусово виконати fsck після перезавантаження.
  8. -n Не викликати init для завершення процесів; Інструктує shutdown, щоб зробити це сам.
  • Використання цієї опції не рекомендується, і її результати не завжди передбачувані.
  1. -c Скасувати очікує завершення роботи. (Це не відноситься до «shutdown now», який не чекає до виключення.) За допомогою цієї опції неможливо вказати аргумент часу, але ви можете вказати пояснювальний повідомлення, яке буде відправлено всім користувачам.
  2. t sec. Повідомляти ініціалісту, щоб почекати секунд між процесами відправки попередження і сигналу знищення, перш ніж перейти на інший рівень запуску.
  3. time Аргумент time вказує, коли слід виконувати операцію виключення.

Час може бути відформатовано по-різному:

По-перше, це може бути абсолютне час в форматі hh: mm, де hh - це час (1 або 2 цифри, від 0 до 23), а mm - це хвилина години (в двох цифрах).

По-друге, він може бути в форматі + m, де m - кількість хвилин, щоб чекати.

Крім того, тепер слово таке ж, як вказівку +0; Він негайно відключає систему.

  1. Message. Повідомлення відправляється всім користувачам, разом зі стандартним повідомленням про завершення роботи.

деталі

Якщо вимикання заплановано на майбутнє, він створить консультативний файл / etc / nologin, який змушує програми, такі як login, не допускати нових користувачів. Цей файл створюється за п'ять хвилин до запуску послідовності вимикання. Shutdown видаляє цей файл, якщо він зупинений до того, як він може сигналізувати про ініціалізації (тобто він скасований або щось пішло не так). Він також видаляє його перед викликом init для зміни рівня запуску.

Прапор -f означає «перезавантаження швидко». Це створює тільки консультативний файл / fastboot, який може бути перевірений системою, коли він знову з'явиться. Завантажувальний rc-файл системи ( «rc» означає «runcom», який є скороченням від «run-команд») може перевірити наявність цього файлу і вирішити не запускати fsck, так як система була закрита належним чином. Після цього процес завантаження повинен видалити / fastboot.

Прапор -F означає «force fsck». Це створює тільки консультативний файл / forcefsck, який може бути перевірений системою, коли він знову з'явиться. Завантажувальний rc-файл може перевірити, чи присутній цей файл, і вирішить запустити fsck зі спеціальним прапором «force», щоб перевірити правильність демонтувати файлових систем. Після цього процес завантаження повинен видалити / forcefsck.

Прапор -n змушує shutdown не викликати init, а вбивати все запущені процеси. Shutdown відключить квоту, облік і обміни та Демонтується всіх файлових систем.

Контроль доступу

Вимкнення може бути викликано з init, коли натиснута комбінація клавіш CTRL-ALT-DEL, якщо існує відповідний запис в / etc / inittab. Це означає, що кожен, хто має фізичний доступ до консольної клавіатурі, може закрити систему.

Щоб цьому запобігти, вимикання може перевірити, чи не зареєстрований авторизований користувач. Якщо вимикання викликається з аргументом -a (додайте це до виклику shutdown в / etc / inittab), він перевіряє, чи є файл / etc /shutdown.allow присутній. Потім він порівнює імена входу в цьому файлі зі списком людей, які увійшли в систему на віртуальній консолі (з / var / run / utmp). Тільки якщо один з авторизованих користувачів або root входить в систему, він буде діяти. В іншому випадку воно буде писати повідомлення

Shutdown: no authorized users logged in

На фізичну консоль системи. Формат /etc/shutdown.allow - одне ім'я користувача в рядку. Порожні рядки і рядки коментарів (з префіксом #) дозволені. В даний час в цьому файлі є обмеження для 32 користувачів.

Зверніть увагу: якщо /etc/shutdown.allow відсутня, аргумент -a ігнорується.

Вимкнення Linux і живлення комп'ютера

Опція -H просто встановлює змінну середовища ініціалізації INIT_HALT в HALT, а параметр -P просто встановлює цю змінну в POWEROFF. Скрипт shutdown, який викликає halt в якості останньої речі в послідовності вимикання, повинен перевірити ці змінні середовища і викликати halt з правильними параметрами для цих параметрів, щоб насправді мати якийсь ефект.

файли

  • / fastboot
    / Etc / inittab
    /etc/init.d/halt
    /etc/init.d/reboot
    /etc/shutdown.allow

Вимкнення Linux з командного рядка: приклади

Заплануйте вимикання системи о 8 годині ранку.

Заплануйте вимикання системи о 8 годині вечора.

shutdown +15 "Upgrading hardware, downtime should be minimal"

Заплануйте вимикання системи через п'ятнадцять хвилин. Поряд зі звичайним повідомленням користувачів про завершення роботи системи їм буде дано описову повідомлення про оновлення обладнання.

Негайно вимкнути Linux

Негайно опустіть систему і автоматично перезавантажити її.

Негайно вимкніть і автоматично вимкніть систему.

пов'язані команди

  • Halt - Зупинити комп'ютер.
  • Poweroff - Зупинити комп'ютер.
  • Reboot - Зупинити комп'ютер.
  • Wall - Надіслати повідомлення всім увійшов в систему користувачам.

Переклад з чудового англійського ресурсу computerhope.

Якщо у вас залишилися якісь питання по темі «Вимкнення Linux з командного рядка», то можете писати їх нам в форму коментарів на сайті.

Якщо ви знайшли помилку, будь ласка, виділіть фрагмент тексту і натисніть Ctrl + Enter.

Вимкнення комп'ютера - дія, з яким звичайні користувачі стикаються мало не щодня. Якщо вимикати сервер доводиться досить рідко, то звичайні, десктопні комп'ютери схильні до цієї операції дуже навіть часто. Більшість користувачів вимикають linux в графічному інтерфейсі системи. В оточенні робочого столу KDE це робиться через головне меню, а в Gnome і Unity навіть є спеціальна кнопка на панелі для вирішення цього завдання.

Але не завжди є можливість вимкнути комп'ютер linux таким чином. Наприклад, якщо оточення робочого столу не працює, то більше нічого не залишається, крім того, щоб виконувати вимикання комп'ютера з командного рядка. До того ж вимикання комп'ютера linux через термінал єдино можливий спосіб для серверів, де немає графічного інтерфейсу. Як ви побачите, цей спосіб також набагато гнучкіша звичайного вимикання, оскільки ви можете налаштувати потрібний час відключення, або ж вимкнути комп'ютер, дочекавшись завершення роботи певної програми.

Щоб вимкнути комп'ютер Linux використовується команда shutdown. Є також команди poweroff, halt, але вони для нестандартних випадків. Зазвичай же вистачає однієї тільки shutdown. Також вимкнути linux з консолі можна за допомогою сполучень клавіш SysRq. Але спочатку давайте розглянемо синтаксис команди shutdown.

Синтаксис команди дуже простий:

$ Shutdown [опції] [час] [повідомлення]

Опції задають параметри відключення, їх ми розглянемо нижче. Час можна задавати в форматі гг: мм в 24-годинному форматі. Також можна використовувати запис + хвилини, що вказує через скільки хвилин від поточного моменту потрібно вимкнути комп'ютер linux. Також доступна константа now, яка вказує, що вимикати потрібно прямо зараз.

Параметр повідомлення дозволяє задати повідомлення, яке буде виведено в термінал перед вимиканням.

Опції

  • --help - вивести довідку по програмі
  • -H, --halt - вимкнути живлення, але не завершити процеси і не перемонтіруя файлові системи
  • -P, --poweroff - нормальне вимикання
  • -k - не виконувати реальних дій, а тільки вивести повідомлення
  • --no-wall - вимкнути комп'ютер, але не виводити повідомлення
  • -c - скасувати заплановане вимкнення linux з командного рядка

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

Процес вимкнення Linux

Природно, команда shutdown linux або будь-яка інша не самостійно завершує роботу системи і вимикає комп'ютер. Вона всього лише передає запит на вимикання системі ініціалізації, а потім ядру. А вже вони виконують ряд складних операцій з підготовки та вимикання комп'ютера. Якщо коротко, то ось вони:

  • Завершення процесів користувача
  • Сигнал SIGTERM всім процесам
  • Сигнал SIGKILL всім процесам
  • Монтування файлових систем в режимі тільки для читання
  • підготовка зовнішніх пристроїв до відключення
  • Блокування простору користувача, щоб гарантувати, що жоден код користувача більше не буде запущений
  • Завершення роботи і відключення живлення більшості периферичних пристроїв
  • Відключення живлення комп'ютера

Тепер ви розумієте суть процесу виключення і то чому не можна просто висмикнути шнур живлення з розетки. Якщо це зробити, комп'ютер відключиться моментально і не виконає всіх необхідних операцій, а це може загрожувати втратою не збережених або навіть недавно збережених даних, пошкодженням файлової системи і т д. Тому бажано вимикати комп'ютер правильно за допомогою shutdown або інших спеціальних утиліт.

А тепер перейдемо до прикладів.

Вимкнення комп'ютера в 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 може пошкодити систему

4. poweroff

Це аналог halt, робить в точності те ж саме:

5. SysRq

Пам'ятаєте, на початку статті, я говорив про поєднання клавіш для включення комп'ютера? Розглянемо це питання докладніше.

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

Найцікавіше, що ми можемо виконати безпечне вимикання комп'ютера linux. Для цього затисніть клавіші Alt + PrtScr і по черзі натискайте:

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

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

висновки

Тепер ви знаєте все що потрібно, про те, як вимкнути Linux через термінал. Якщо вас застане зненацька помилка або зависання комп'ютера, ви знаєте що робити. Якщо залишилися питання - пишіть в коментарях!



Сподобалася стаття? поділіться їй