Как да рестартирате и изключите Linux сървъри?

Като сисадмин една от честите дейности е рестартирането или изключването на сървърите.

Това може да се дължи на дейност по редовна поддръжка, като корекция на операционната система, или на някакъв хардуерен срив, който изисква системата да бъде изключена за поддръжка.

Една Linux система предлага няколко различни начина за рестартиране или изключване на сървъра. Нормалната система трябва да отговаря на всяка команда, докато сървърът с влошено състояние може да се наложи да се рестартира принудително. Имайте предвид, че повечето от тези команди ще изискват определено ниво на привилегия като суперпотребител или със sudo, за да бъдат изпълнени успешно, тъй като рестартирането на системата е административна задача и за многопотребителска система или сървър, изпълняващи критични процеси, рестартирането или изключването е разрушителна дейност.

Тази статия обхваща няколко такива метода, които могат да ви помогнат с дейността по рестартиране/изключване на Linux.

GUI метод

Ако използвате GUI Desktop Environment за Linux като Gnome, KDE, Mate, XFCE и др., ще намерите бутон за захранване в системното/приложното меню, който предлага действия като излизане, рестартиране, хибернация или изключване. Наличните опции може леко да се различават в зависимост от това коя дистрибуция, работна среда и версия на операционната система се използват. Но определено ще намерите настройки, свързани с захранването, в наличните менюта, за да промените състоянието на захранване на вашата система.

Например, на моя работен плот на Ubuntu Mate мога да намеря опцията за изключване в менюто за захранване в горния десен ъгъл на моя екран.

След като изберете опцията „Изключване…“, ще ви бъде представен диалогов прозорец с множество опции като Спиране, Рестартиране, Отказ и Изключване. Можете или да продължите с рестартиране или изключване, като щракнете върху десния бутон, или да отмените и да се върнете към средата на вашия работен плот.

Предлаганият GUI и опциите може да се различават леко в зависимост от разпространението и настолната среда, която използвате, но бъдете сигурни, че има опция за промяна на състоянието на захранване на системата. А с GUI това не е повече от няколко кликвания в менюто за захранване.

  Как да инсталирате нови версии на ядрото на Linux на OpenSUSE Leap

Команда systemctl

В Linux кутия, работеща с systemd като init система, можете да използвате командата systemctl, за да рестартирате вашата машина.

$ sudo systemctl start reboot.target

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

$ sudo systemctl reboot

За иницииране на изключване командата systemctl изглежда така:

$ sudo systemctl shutdown

За да спрете системата, използвайте:

$ sudo systemctl halt

команда за изключване

Командата за изключване може да се използва за изключване, както и за рестартиране на 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 в бекенда, за да постигне желаната операция за рестартиране/изключване.

Команда за рестартиране

За елегантно рестартиране на система можете също да използвате команда за рестартиране (може да се наложи да използвате със sudo).

$ sudo reboot

За да изключите системата с командата за рестартиране, използвайте флага -p:

$ sudo reboot -p

За да принудите рестартиране (за системи, които не отговарят на нормална команда за рестартиране), можете да опитате -f флаг като:

$ sudo reboot -f

Команда за спиране

За да спрете система, можете просто да използвате командата halt:

$ sudo halt

Команда за изключване

За да изключите система, имате опцията да използвате командата за изключване:

$ sudo poweroff

init команда

За системи, които не работят на systemd, командата init (telinit също ще работи) предлага опции за промяна на нивото на изпълнение на системата. За да рестартирате система чрез init, можете да използвате:

$ sudo init 6

Подобно за спиране на система, командата init, която трябва да използвате, е:

$ sudo init 0

Извикването на конкретно ниво на изпълнение чрез init кара процеса на стартиране на системата да изпълни поредица от скриптове за стартиране в определен ред, за да гарантира, че системата достига желаното ниво на изпълнение. Ниво на изпълнение 6 е дефинирано за рестартиране, докато ниво на изпълнение 0 е за спиране на системата.

  Как да синхронизирате Google Календар с работния плот на Linux

Бутон за включване

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

За отдалечен сървър, работещ с Linux, бутонът за захранване обикновено изключва системата. Но тези, които се намират в отдалечени центрове за данни, имат допълнителната опция да бъдат рестартирани или изключени от своите CLI/GUI инструменти за управление на отдалечено изключване, предлагани от съответните доставчици на сървъри.

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

За неотговаряща, замръзнала система е трудно да я доведете до рестартиране или изключено състояние. Когато нямате друга възможност и в краен случай можете да опитате да натиснете Alt + PrintScreen + последователност от клавиши, за да рестартирате незабавно системата. Може да не е предпочитана или препоръчителна опция, но въпреки това може да се използва в краен случай.

Винаги помнете, че има възможност за загуба на данни и повреда при използване на този метод, както при всяка друга опция за неблагоприятно, принудително рестартиране или изключване. Осигурете най-добрите системни практики за архивиране и резервиране и бъдете внимателни, когато използвате тази опция.

  Как да използвате командата за низове в 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: Превключете клавиатурата от необработен към XLATE режим
  • E: Изпратете сигнал SIGTERM до всички процеси с изключение на init
  • I: Изпращане на сигнал SIGKILL до всички процеси с изключение на init
  • S: Синхронизиране на всички монтирани файлови системи
  • U: Премонтирайте всички монтирани файлови системи като само за четене

И накрая, имаме B или O, което означава:

  • B: Незабавно рестартирайте системата, без демонтиране на дялове или синхронизиране

ИЛИ

  • O: Незабавно изключване на системата, без демонтиране на дялове или синхронизиране

Резюме

Така че тук има различни начини, които ви позволяват да рестартирате или изключите Linux система. Той ви предлага опции, вариращи от прости GUI интерфейси до сравнително сложни терминални команди, които могат да улеснят живота ви или дори да ви позволят да автоматизирате неща. За системи, които замръзнаха по една или друга причина, обсъдихме принудителни начини за постигане на състояние на рестартиране или изключване, което може да не е идеалният начин, но трябва да се използва в редки случаи.

Вземете предпазни мерки, докато използвате командите, обсъдени в тази статия, тъй като те влияят на състоянието на системата и е възможно да засегнат множество потребители и услуги в случай на корпоративен сървър. Разгледайте man страниците на командите, предложени в тази статия, за да научите повече за тях и какви опции предлагат.

Научете как да конфигурирате WAS да спре да иска парола по време на изключване тук.