Як перезавантажити та вимкнути сервери Linux?

Однією з частих дій системного адміністратора є перезавантаження або вимкнення серверів.

Це може бути пов’язано з регулярним техобслуговуванням, як-от виправленням ОС, або збоєм апаратного забезпечення, що вимагає відключення системи для обслуговування.

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

Ця стаття охоплює декілька таких методів, які можуть допомогти вам у перезавантаженні/завершенні роботи Linux.

Метод GUI

Якщо ви використовуєте графічний інтерфейс робочого середовища для Linux, наприклад Gnome, KDE, Mate, XFCE тощо, ви знайдете кнопку живлення в меню системи/програми, яка пропонує такі дії, як вихід із системи, перезавантаження, сплячий режим або вимикання. Доступні параметри можуть дещо відрізнятися залежно від того, який дистрибутив, робоче середовище та версія ОС використовуються. Але ви точно знайдете параметри, пов’язані з живленням, у доступних меню, щоб змінити стан живлення вашої системи.

Наприклад, на робочому столі Ubuntu Mate я можу знайти опцію «Вимкнути» в меню живлення у верхньому правому куті екрана.

Після вибору опції «Завершити роботу…» ви побачите діалогове вікно з кількома параметрами, як-от «Призупинити», «Перезапустити», «Скасувати» та «Завершити роботу». Ви можете або перезавантажити, або завершити роботу, натиснувши праву кнопку, або скасувати та повернутися до робочого середовища.

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

  Last Light Redux на Linux

Команда systemctl

У системі Linux із запущеною системою ініціалізації systemd ви можете використати команду systemctl для перезавантаження комп’ютера.

$ sudo systemctl start reboot.target

Або ви можете просто використати systemctl із потрібним параметром, наприклад, для перезавантаження як:

$ sudo systemctl reboot

Для ініціювання завершення роботи команда systemctl виглядає так:

$ sudo systemctl shutdown

Щоб зупинити систему, використовуйте:

$ sudo systemctl halt

Команда вимкнення

команду shutdown можна використовувати для вимкнення живлення, а також для перезавантаження системи Linux. Щоб негайно перезавантажити систему, скористайтеся:

$ sudo shutdown -r now

Або щоб вимкнути систему без очікування, використовуйте прапорець -h або -P:

$ sudo shutdown -P now 

Ми можемо додати затримку до команди завершення роботи, щоб перезавантажити/вимкнути систему після визначеного інтервалу. Цього можна досягти:

$ sudo shutdown -r 10

Щоб зупинити систему, не вимагаючи вимкнення обладнання, ви можете використати прапорець -H:

$ sudo shutdown -H now

Якщо ви просто вкажете команду завершення роботи, завершення роботи буде заплановано через хвилину. Щоб вимкнути в певний час, скористайтеся:

$ sudo shutdown 22:30

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

$ sudo shutdown 23:00 "Powering off system for maintenance...save your work"

Щоб скасувати заплановане завершення роботи, ви можете використати прапорець -c:

$ sudo shutdown -c

У деяких системах команда завершення роботи викликає systemctl у серверній частині, щоб виконати бажану операцію перезавантаження/вимкнення.

Команда перезавантаження

Щоб акуратно перезавантажити систему, ви також можете використати команду reboot (може знадобитися використовувати з sudo).

$ sudo reboot

Щоб вимкнути систему за допомогою команди перезавантаження, використовуйте прапорець -p:

$ sudo reboot -p

Щоб примусово перезавантажити (для систем, які не відповідають на звичайну команду перезавантаження), ви можете спробувати позначку -f як:

$ sudo reboot -f

Команда зупинки

Щоб зупинити систему, ви можете просто використати команду halt:

$ sudo halt

Команда Poweroff

Щоб вимкнути систему, ви можете скористатися командою poweroff:

$ sudo poweroff

Команда init

Для систем, які не працюють на systemd, команда init (telinit також працюватиме) пропонує параметри для зміни рівня запуску системи. Щоб перезавантажити систему за допомогою init, ви можете скористатися:

$ sudo init 6

Подібно до зупинки системи використовуйте команду init:

$ sudo init 0

Виклик певного рівня запуску за допомогою init змушує процес ініціалізації системи виконувати серію сценаріїв ініціалізації в певному порядку, щоб гарантувати, що система досягне бажаного рівня виконання. Рівень запуску 6 визначено для перезавантаження, а рівень запуску 0 – для зупинки системи.

  Як використовувати команду ss в Linux

Кнопка живлення

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

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

Комбінація Alt + SysRq

Для системи, яка не відповідає, зависла, її важко перезавантажити або вимкнути. Якщо у вас немає іншого виходу та як крайній засіб, ви можете спробувати натиснути Alt + PrintScreen + послідовність клавіш, щоб миттєво перезавантажити систему. Можливо, це не бажаний або рекомендований варіант, але все ж його можна використовувати як крайній засіб.

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

  Як грати в God of War на Linux

Щоб цей параметр працював, його слід було ввімкнути в ядрі Linux. Ви можете перевірити це за допомогою команди нижче:

$ cat /proc/sys/kernel/sysrq

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

$ sudo echo “1” > /proc/sys/kernel/sysrq

Щоб перезавантажити систему за допомогою цього методу, утримуйте Alt + SysRq (PrintScreen), а потім послідовно натискайте наступні клавіші з інтервалом у кілька секунд між клавішами:

R E I S U B

або для вимкнення натисніть O замість B у кінці:

R E I S U O

Ось що означають ключі:

  • R: Переключіть клавіатуру з режиму raw на XLATE
  • E: Надіслати сигнал SIGTERM усім процесам, крім ініціалізації
  • I: Надіслати сигнал SIGKILL усім процесам, крім init
  • S: Синхронізувати всі змонтовані файлові системи
  • U: Перемонтуйте всі змонтовані файлові системи як доступні лише для читання

Нарешті, у нас є B або O, що означає:

  • B: Негайно перезавантажте систему, не демонтуючи розділи та не синхронізуючи

АБО

  • O: Негайно вимкніть систему, не демонтуючи розділи та не синхронізуючи

Резюме

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

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

Дізнайтеся, як налаштувати WAS, щоб він не запитував пароль під час завершення роботи, тут.