Як перезавантажити або вимкнути Linux за допомогою командного рядка

Бажаєте розпочати з чистого аркуша? Ця інструкція покаже вам, як коректно та безпечно перезавантажити або вимкнути ваш комп’ютер під керуванням Linux або macOS, використовуючи командний рядок.

Перехід до завершення роботи

Інколи виникає необхідність просто перезапустити або повністю вимкнути систему. Якщо ви працюєте на сервері без графічного інтерфейсу або підключені до віддаленого комп’ютера через SSH, командний рядок стає єдиним доступним варіантом. Операційні системи Linux і Unix-подібні, такі як macOS, пропонують декілька команд для безпосереднього вимкнення або перезавантаження системи з командного рядка.

Основні команди для цього:

  • shutdown
  • reboot
  • halt
  • poweroff

Детальний розгляд сторінок man для цих команд може ввести в оману. В залежності від обраних параметрів, кожна з цих команд може бути використана для ініціювання вимкнення, перезавантаження або зупинки системи. По суті, сторінки довідки для reboot, halt та poweroff містять ідентичну інформацію.

Механізм роботи

Ключ до розуміння лежить у systemd, системі завантаження, що прийшла на зміну старій системі ініціалізації System V. Fedora першою почала використовувати systemd у 2011 році. Відтоді вона стала стандартом у багатьох дистрибутивах. Debian і Ubuntu перейшли на systemd у 2015 році.

У дистрибутивах, що базуються на systemd, команди shutdown, reboot, halt та poweroff – це фактично ярлики, які вказують на команду systemctl. Збереження цих команд забезпечує сумісність зі старими дистрибутивами, які базувалися на System V. Це означає, що сценарії оболонки та системні адміністратори, звиклі до System V, не зіштовхнуться з проблемами при переході на систему з systemd.

Використання команди shutdown

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

Для виконання будь-якої з цих команд вам потрібні права адміністратора (sudo). Якщо команда виконується негайно і не зачіпає інших користувачів, використання sudo не є обов’язковим. Якщо ж команда відхиляється, спробуйте її з префіксом sudo.

За замовчуванням, shutdown гарантує коректну зупинку всіх процесів, синхронізацію файлових систем та припинення будь-якої активності ЦП. Це стан “зупинки”. Потім команда надсилає апарату запит на відключення живлення – стан “вимкнення”.

Зазвичай, при використанні shutdown передають такі параметри, як час та повідомлення для користувачів, що увійшли до системи, про майбутнє вимкнення. Наприклад, заплануємо вимкнення через 15 хвилин. Введіть shutdown, пробіл, +15, пробіл і повідомлення для користувачів.

shutdown +15 Вимкнення через 15 хвилин!

Час +15 означає 15 хвилин від поточного моменту. Знак + не є обов’язковим, можна ввести просто 15.

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

Щоб скасувати вимкнення, використовуйте параметр -c (скасувати).

shutdown -c

Хоча ви не отримаєте повідомлення про скасування вимкнення, користувачі, що ввійшли до системи, отримають сповіщення.

Якщо ви не вкажете час, вимкнення буде заплановано через одну хвилину. Зверніть увагу, що без вказівки часу, повідомлення користувачам надіслати неможливо.

shutdown

Якщо ви не можете чекати навіть хвилину, використовуйте now як час, і вимкнення відбудеться негайно. Це еквівалентно використанню +0.

Час можна вказати у форматі HH:MM, наприклад 23:00 (24-годинний формат). За 5 хвилин до вимкнення входи до системи будуть заборонені.

Дія за замовчуванням для shutdown – це переведення комп’ютера в стан зупинки, а потім до стану вимкнення. Цю поведінку можна змінити за допомогою параметрів командного рядка:

  • -H (зупинка) – комп’ютер перейде в стан зупинки, але не вимкне живлення.
  • -P (вимкнення) – дія за замовчуванням. Комп’ютер перейде в стан зупинки, а потім вимкнеться.
  • -r (перезавантаження) – комп’ютер перейде в стан зупинки, а потім перезавантажиться.
  • -h (зупинка та вимкнення) – те саме, що й -P. Якщо використовувати -h та -H разом, -H матиме пріоритет.
  • -c (скасувати) – скасує будь-яке заплановане вимкнення, зупинку або перезавантаження.

Ось приклад, як запланувати перезавантаження:

shutdown -r 08:20 Перезавантаження системи о 08:20

Команди reboot, halt та poweroff

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

Якщо ви хочете перезавантажитися зараз, використовуйте reboot. Для вимкнення – poweroff, а для зупинки системи – halt.

reboot

halt

poweroff

Ці команди виконуються негайно. Якщо будь-яка з них відхиляється, додайте перед нею sudo. Проте зазвичай це відбувається через те, що в системі є інші активні користувачі, яких ви збираєтеся вимкнути.

Яку команду вибрати?

У багатокористувацьких системах використання shutdown надає більше контролю. Можливість планувати вимкнення і перезавантаження, а також оповіщати користувачів за допомогою повідомлень, є безцінною. Для однокористувацького комп’ютера команди reboot та poweroff, швидше за все, задовольнять ваші потреби.