Как да намалите времето за изключване на компютъра в Linux. Меко рестартиране и незабавно изключване на компютъра в Ubuntu

Файлови буфери Linux системисъхранява се в паметта и само от време на време се записва на диск. Това ускорява дисковите I/O операции, но увеличава риска от загуба на данни в случай на внезапна повреда.

Традиционните UNIX и Linux системи бяха много придирчиви към процедурата за изключване. Съвременните системи са по-толерантни (особено когато става въпрос за високонадеждна файлова система като ext3fs), но все пак е най-добре да се изключи грациозно, ако е възможно. Неправилното изключване на компютъра може да доведе до появата на трудно откриваеми, неочевидни грешки, а понякога и до пълен срив на системата.

Рестартирайте системата до персонален компютър- решение на почти всички проблеми. Но когато работите в Linux, ви съветваме първо да помислите и едва след това да рестартирате. Проблемите, които възникват в Linux, обикновено са фини и сложни, така че рестартирането дава очаквания резултат много по-рядко, отколкото в други системи. Освен това процесът на рестартиране на Linux отнема много време, което създава неудобство за потребителите.

Необходимо е да рестартирате, когато се свърже ново устройство или работещо устройство замръзне, така че да не може да бъде инициализирано. Ако бъде променен конфигурационен файл, който се иска само при стартиране, промените ще влязат в сила само след рестартиране. И накрая, ако е невъзможно да се регистрирате в системата, просто няма друг изход, освен да рестартирате.

Ако един от скриптовете за стартиране на системата е променен, тогава трябва да рестартирате поне, за да проверите дали системата функционира успешно след промените. Ако проблемът не се появи през следващите няколко седмици, няма да си спомняте подробностите за последните промени след това.

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

  • изключете захранването;
  • въведете командата за изключване;
  • използвайте команди за спиране и рестартиране;
  • променете нивото на изпълнение на демона init, като използвате командата telinit;
  • изпълнете командата за изключване, за да поискате от системата да изключи захранването.

Изключете захранването в Linux

Дори в системите настолни компютриизключването на захранването не е най-добрият начин за изключване на системата. Това може да доведе до загуба на данни и повреда на файловата система.

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

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

Команда изключвам: правилният начин за изключване на системата

Командата за изключване е най-сигурният и най-правилният начин за изключване или рестартиране на системата или връщане към режим на един потребител.

Можете да инструктирате командата да направи пауза, преди да изключите системата. Докато чака, екипът изпраща съобщения до регистрирани потребители на постепенно съкращаващи се интервали, предупреждавайки за предстоящо събитие. По подразбиране съобщенията показват, че системата се изключва, и показват оставащото време до изключване. По желание администраторът може да добави свое собствено кратко съобщение, обясняващо защо системата е спряна и приблизително колко време ще отнеме, за да може да влезе отново. След издаване на командата за изключване, потребителите ще бъдат възпрепятствани да влязат, но ще видят съобщението, предоставено от администратора.

С командата за изключване можете да посочите какво да прави системата след изпълнение на командата: стоп (-h) или рестартиране (-r). Можете също да укажете дали командата fsck (-F) трябва да принуди проверка на диска след рестартиране или не (-f). По подразбиране Linux автоматично пропуска тази проверка дали файловите системи са били правилно демонтирани.

Следната команда напомня на потребителите за планирана процедура за поддръжка и изключва системата в 9:30 сутринта:

$ shutdown -h 09:30 „Слизам за планираноподдръжка. Очакваното време на престой е 1 час"

Можете също да зададете относително време за изключване. Например следната команда ще стартира процеса на изключване след 15 минути:

$ shutdown -h +15 "Слизам за авариен ремонт на диск."

Команда спиране: по-лесен начин за спиране

Командата halt изпълнява всички основни операции, необходими за спиране на системата.

Обикновено се извиква с командата shutdown -h, но може да се използва и самостоятелно. Командата регистрира факта на спирането, убива несъществени процеси, изпълнява системното извикване за синхронизиране, изчаква записите на диска да завърши и след това прекратява ядрото.

С опцията -n системното повикване за синхронизиране се потиска. Командата halt -n се използва след възстановяване на основния дял с командата fsck, така че ядрото да не може да презапише корекциите със стари версии на дяла, съхранени в кеша.

Команда рестартирайте: бързо рестартиране

Командата за рестартиране е почти идентична с командата за спиране. Единствената разлика е, че системата се рестартира, вместо да спира. Режимът на рестартиране също се извиква от командата shutdown -r. Командата за рестартиране също поддържа флага -n.

Команда telinit: промяна на нивото на изпълнение на демон в него

Можете да използвате командата telinit, за да инструктирате демона init да премине към определено ниво на изпълнение. Например командата

Командата "изключване" безопасно изключва системата. Всички влезли потребители са уведомени, че системата се изключва и операциите за влизане са блокирани. Можете да изключите системата веднага или след определено закъснение.

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

"Shutdown" върши своята работа, като сигнализира за процеса на инициализиране, като го моли да промени своето ниво на изпълнение. Ниво на изпълнение 0 се използва за спиране на системата, ниво на изпълнение 6 се използва за рестартиране на системата, а ниво на изпълнение 1 се използва за поставяне на системата в състояние, при което могат да се изпълняват административни задачи (режим на един потребител). Нивото на изпълнение 1 е по подразбиране, освен ако не са посочени опциите -h или -r.

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

Изключете Linux от командния ред

изключване [-akrhPHfFnc] [-t сек] време [съобщение]

  1. -a Контролирайте достъпа до командата за изключване с помощта на файла /etc/shutdown.allow за контролен достъп. За получаване Допълнителна информациявижте раздел Контрол на достъпа по-долу.
  2. -k Не изключвайте, но изпращайте предупредителни съобщения, сякаш изключването е реално.
  3. -h Указва на системата да се изключи и след това да я спре.
  4. -P Инструктира системата да се изключи и след това да се изключи.
  5. -H Ако е посочена опцията -h, тази опция указва, че системата трябва да се стартира в монитора за зареждане на системи, които го поддържат.
  6. -f Пропускане на fsck след рестартиране.
  7. -F Принудително fsck след рестартиране.
  8. -n Не извиквайте init за прекратяване на процеси; Инструктирайте изключването да го направите сами.
  • Използването на тази опция не се препоръчва и резултатите от нея не винаги са предвидими.
  1. -c Отмяна на предстоящо изключване. (Това не се отнася за "изключване сега", което не чака до изключване.) Не можете да посочите аргумент за време с тази опция, но можете да посочите обяснително съобщение, което ще бъде изпратено до всички потребители.
  2. т сек. Кажете на инициатора да изчака секунди между изпращането на предупреждение и сигнал за убиване, преди да премине към друго ниво на изпълнение.
  3. времеАргументът time указва кога трябва да се извърши операцията за изключване.

Времето може да бъде форматирано по различни начини:

Първо, може да бъде абсолютно време във формат hh:mm, където hh е часът (1 или 2 цифри, от 0 до 23), а mm е минутата на часа (две цифри).

Второ, може да бъде във формат +m, където m е броят на минутите за изчакване.

Също така думата вече е същата като обозначаването на +0; Изключва системата незабавно.

  1. съобщение. Съобщение, изпратено до всички потребители, заедно със стандартно известие за изключване.

Подробности

Ако изключване е планирано за бъдещето, то ще създаде препоръчителен файл /etc/nologin, който принуждава програми като влизане, за да предотвратят допускането на нови потребители. Този файл се създава пет минути преди началото на последователността на изключване. Изключването изтрива този файл, ако е спрян, преди да може да сигнализира за инициализация (т.е. той е отменен или нещо се е объркало). Той също така го премахва, преди да извика init, за да промени нивото на изпълнение.

Флагът -f означава "бързо рестартиране". Това създава само файл с препоръки /fastboot, който може да бъде проверен от системата, когато се появи отново. Зареждащият rc файл на системата („rc“ означава „runcom“, което е съкращение от „команди за изпълнение“) може да провери наличието на този файл и да реши да не стартира fsck, тъй като системата е била правилно изключена. След това процесът на зареждане трябва да премахне /fastboot.

Флагът -F означава "принудително fsck". Това създава само препоръчителен /forcefsck файл, който може да бъде проверен от системата, когато се появи отново. Зареждащият rc файл може да провери дали този файл присъства и решава да стартира fsck със специален флаг "force", за да провери дали немонтираните файлови системи са правилни. След това процесът на зареждане трябва да премахне /forcefsck.

Флагът -n кара изключването да не извиква init, а да убива всичко работещи процеси. Изключването ще деактивира квотата, счетоводството и суаповете и ще демонтира всички файлови системи.

Контрол на достъпа

Изключването може да бъде извикано от init, когато се натисне клавишната комбинация CTRL-ALT-DEL, ако има съответен запис в /etc/inittab. Това означава, че всеки, който има физически достъпкъм клавиатурата на конзолата, може да изключи системата.

За да предотврати това, изключването може да провери дали оторизиран потребител е влязъл. Ако shutdown се извика с аргумента -a (добавете това към извикването за изключване в /etc/inittab), той проверява дали файлът /etc/shutdown.allow присъства. След това сравнява данните за влизане в този файл със списъка на хората, които са влезли във виртуалната конзола (от /var/run/utmp). Само ако един от оторизираните потребители или root е влязъл в системата, това ще влезе в сила. В противен случай ще напише съобщение

Изключване: няма влезли оторизирани потребители

На физическата конзола на системата. Форматът /etc/shutdown.allow е едно потребителско име на ред. Разрешени са празни редове и редове за коментари (с префикс #). Този файл в момента има ограничение от 32 потребители.

Имайте предвид, че ако /etc/shutdown.allow липсва, аргументът -a се игнорира.

Изключване на Linux и захранване на компютъра

Опцията -H просто задава променливата на средата за инициализация INIT_HALT на HALT, а опцията -P просто задава тази променлива на POWEROFF. Скриптът за изключване, който извиква halt като последно нещо в последователността на изключване, трябва да провери тези променливи на средата и да извика halt с правилните опции, за да могат тези опции действително да имат някакъв ефект.

Файлове

  • /бързо стартиране
    /etc/inittab
    /etc/init.d/halt
    /etc/init.d/reboot
    /etc/shutdown.allow

Изключване на Linux от командния ред: примери

Планирайте изключване на системата в 8:00 сутринта.

Планирайте изключване на системата в 20 часа.

shutdown +15 "Надстройване на хардуера, времето за престой трябва да е минимално"

Планирайте да изключите системата след петнадесет минути. Заедно с обичайното известие до потребителите, че системата се изключва, те ще получат описателно съобщение за надстройката на хардуера.

Изключете незабавно Linux

Свалете системата незабавно и рестартирайте автоматично.

Изключете системата незабавно и автоматично.

Свързани команди

  • Спиране - Спрете компютъра.
  • Изключване - Спрете компютъра.
  • Рестартиране - Спрете компютъра.
  • Стена - Изпратете съобщение до всички влезли потребители.

Превод от прекрасен английски ресурс компютърна надежда.

Ако все още имате въпроси по темата „Изключване на Linux от командния ред“, можете да ни ги напишете във формата за коментари на сайта.

Ако откриете грешка, моля, маркирайте част от текста и щракнете Ctrl+Enter.

Нека помислим как да рестартирате или изключите компютъра от командния ред. Използвам това, когато инсталирам някакъв драйвер или когато тежък товарна процесора интерфейсът спира да реагира на моите действия (въпреки че това се случва изключително рядко). Възможно е да се убие "ненаситен" процес чрез командния ред, но не винаги се знае кой процес е, така че бързо решение е да рестартирате компютъра.

Рестартираме компютъра

аз така правя. Отидете до конзолата, като натиснете клавишна комбинация Ctrl+Alt+F1. В конзолата първо трябва да въведете вашето потребителско име и парола (знаците не се показват при въвеждане на парола). И изпълнявам командата:

sudo рестартиране

Отново ще трябва да въведете администраторската парола и да натиснете Enter. Компютърът ще се рестартира.

Можете също да използвате командата, за да рестартирате компютъра си. изключвам, за това трябва да използвате ключа -r:

Sudo изключване -r сега

Изключете компютъра

За да изключите компютъра от командния ред, трябва да изпълните командата:

sudo shutdown -h сега

Можете също да изключите компютъра, като изпълните командата:

Судо спиране

И също може да се използва.

Тогава SysRq може да помогне в най-безнадеждни ситуации, освен ако, разбира се, ядрото не е в "паника", което обикновено се показва от произволно мигащи светодиоди на клавиатурата. Интересно? След това четем нататък.

Ключът SysRq е съществувал много преди Windows да направи екранни снимки. Първоначално IBM възнамерява клавиша SysRq да превключва между приложения, без да ги спира. Но това е история. Linuxoids адаптира SysRq, за да даде на потребителя спешен достъп до ядрото. Но дори и тук всичко не е просто. Факт е, че за съвместимост с Windows в графични среди на Linux, един ключ SysRq работи като PrintScreen, а комбинацията Alt + SysRq, препоръчана в уроци за конзола, точно както в Windows, глупаво поставя картината на активния прозорец в буфера. Следователно в Linux Linux няма ключ SysRq ... също! Вместо този ключ в графичните среди на Linux се използва магическата комбинация Alt + Ctrl + SysRq + латинска буква/цифра, което значително увеличава властта ви над машината.

M - показва количеството използвана памет. В Ubuntu работи, ако предварително инсталирате високо нивоподробности за изхода.

N - показва списък със задачи в реално време. Също така работи, ако преди това сте задали изходното ниво на високо.

E - Прекратява всички процеси с изключение на init.

I - убива всички процеси, включително init.

T - отпечатва списък със задачи на конзолата.

S - синхронизира всички файлови системи, като записва всички буферирани данни на твърдия диск.

R - принудително връща клавиатурата в работно състояние. В този случай ядрото започва да работи директно с клавиатурата, заобикаляйки X сървъра и само в ASCII кодове.

T - показва списък с процеси. Отново работи само при високо ниво на многословност на изхода.

P - дъмп на регистър на процесора. Заявката може да представлява интерес за тези, които участват в отстраняването на грешки в софтуера.

Q - Показва събития на хард таймера. Работи, когато изходната многословност е настроена на висока.

O - незабавно изключва компютъра.

B - рестартира компютъра. Вярно е, че те съобщават, че с ядрото 3.8.0-25 това не е рестартиране, а изключване. Но не го проверих сам.

U - Премонтира всички файлови системи в режим само за четене.

V - Възстановява фреймбуфера на конзолата. Да приемем, че гледате някакво видео във виртуалната конзола (да, Linux, за разлика от Windows, също позволява това) и спешно трябва да си спомните какво сте правили в конзолата преди стартирането на видеото. Командата ще възстанови фреймбуфера на конзолата. Като цяло би било необходимо да се каже повече за това интересно нещо - фреймбуфера, но не и в тази статия.

W - Показва всички окачени задачи, ако има такива.

Z - показва съдържанието на буфера за проследяване на ядрото.

И така, ИЗведнъж вашият Linux замръзва по такъв начин, че дори рестартирането на Xes с клавишите Alt + Del + BS не помага. Спокойно, само спокойно. В никакъв случай не бързайте да натискате бутона за нулиране на корпуса на компютъра. С много голяма вероятност няма да загубите данни, когато натиснете последователно клавиши R-E-I-S-U-B(задръжте Alt+Ctrl+SysRq!). И знаеш ли какво? Винаги можете незабавно да изключите нормално работещ компютър с Alt + Ctrl + SysRq + O. Освен ако, разбира се, не сте затворили програмите си. :)

Въпреки това, мисля, че е опасно да се направи вълшебният SysRq достъпен, ако позволите на други потребители да работят отдалечено на вашата машина, или вие самият работите с нея отдалечено. Въпросът е, че сигналът за прекъсване, изпратен от отдалечената конзола, може да се интерпретира като Alt+SysRq, с всички произтичащи от това последствия. Ето защо, ако решите да дадете отдалечен достъп до вашата машина, тогава за всеки случай първо нулирайте променливата kernel.sysrq в системната конфигурация. Можете също така да напишете прост скрипт на bash за това и дори да прикачите бутон на работния плот към него, така че всеки път да не си правите труда да редактирате контролния файл на системната конфигурация. Късмет!

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

Днес ще разгледаме въпроси като командата за рестартиране на Linux от конзолата, рестартиране от разстояние и директно рестартиране в GUI. Нека започнем с обичайното рестартиране на системата.

Тук, както се казва, какво може да бъде по-лесно. Помислете за първо рестартиране в Ubuntu Unity. Просто щракнете върху бутона на зъбно колело вдясно горен ъгълекран и изберете Изключвам:

След това в прозореца, който се отваря, щракнете върху елемента:

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

След това потвърдете рестартирането.

Рестартирайте Linux в терминала

И тук обхватът е много по-широк, има около дузина команди, които могат да се използват за рестартиране на Linux. Някои се нуждаят от root привилегии, други не, някои изглеждат прости и лесни за запомняне, докато други са дълги и сложни. След това ще разгледаме всички тях.

Първата команда за рестартиране на Linux, най-често срещаната и най-проста:

Както можете да видите, помощната програма се нуждае от права на суперпотребител. След натискане на Enter компютърът веднага ще премине в рестартиране.

Помощната програма за изключване, която се използва за изключване, също ви позволява да рестартирате компютъра; за това трябва да му предадете параметъра -r. Освен това можете да посочите и времето за рестартиране. Сега - 0 или сега, след една минута +1 след две - +2 и така нататък:

sudo изключване -r +1

В системите за инициализация, съвместими с Init Scripts, имаше нива на зареждане на системата - 0,1,2,3,4,5,6, ниво 0 - означаваше изключване, 6 рестартиране, други режими на системата сега не ни интересуват. Можете да превключвате между нива с командата init. Но отново, имате нужда от права на суперпотребител. По този начин:

Системната услуга за съобщения dbus може също да рестартира компютъра:

/usr/bin/dbus-send --system --print-reply --dest="org.freedesktop.ConsoleKit" /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart

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

ехо 1 > /proc/sys/kernel/sysrq

По-добре е да направите това предварително, тъй като този метод е полезен, когато системата е замразена и не реагира на нищо:

nano /etc/sysctl.conf

kernel.sysrq=1

За да активирате SysRqкомбинации задръжте Alt + SysRq и натиснете клавишния код. За нормално рестартиране се препоръчва да използвате следната последователност: Р Е И С У Б, натиснете клавишите в същата последователност с интервал от около секунда.

  • Р- връща контрола от клавиатурата, ако X сървърът е бил прекратен неправилно;
  • Е- ядрото изпраща сигнал SIGTERM до всички процеси с изключение на init;
  • аз- изпраща сигнал SIGKILL до всички процеси с изключение на init;
  • С- ядрото синхронизира файловите системи, всички данни от кеша се прехвърлят на твърдия диск;
  • У- премонтира всички файлови системи в режим само за четене;
  • Б- незабавно рестартиране, без синхронизация и допълнителна подготовка.

Преди да се рестартира, системата изчаква завършването на всички процеси, спира всички услуги, демонтира и монтира файлови системи само за четене. Това правим, като натискаме тези клавишни комбинации последователно. Но ако трябва да рестартирате системата сега, без да чакате изключване на всички процеси, например сървъра, можете незабавно да изпратите сигнал B. Така: Alt+SysRq+B.

SysRqможе да се използва без клавишни комбинации чрез писане желания кодоперации към /proc/sysrq-trigger файл:

echo b > /proc/sysrq-trigger

Системата ще се рестартира както е, без да спират услугите и да се подготвят файлови системи, така че незапазените данни могат да бъдат загубени и файлова системаповредени.

Дистанционно рестартиране на Linux

Ако имате достъп до сървъра чрез ssh, тогава е много лесно да рестартирате linux дистанционно, като използвате една от горните команди, например:

ssh [защитен с имейл]/sbin/рестартиране

Но отново, за тази операция трябва да имате root разрешенияна отдалечен сървър.

заключения

Сега знаете как да рестартирате linux, дори знаете как да рестартирате сървъра чрез ssh. Ако имате въпроси, попитайте в коментарите!

Подобни публикации: