SysRq

Поделись знанием:
Перейти к: навигация, поиск

SysRq или SysReq (сокращение от англ. System Request) — клавиша на клавиатуре для IBM PC-совместимого компьютера начиная с PC/AT, которая не имеет стандартного назначения[1][2]. Изначально появилась на клавиатуре консолей типа IBM 3270 для мейнфрейма IBM System/370, где использовалась для переключения ввода напрямую в ОС VM/370 или MVS.

В современных операционных системах может быть включена для специального использования. В 84-кнопочной версии клавиатуры IBM PC/AT SysRq была отдельной клавишей, в современных клавиатурах она совмещена с клавишей Print screen.





История

84-я клавиша, SysRq,[3] была добавлена IBM в клавиатуру для IBM PC/AT для того, чтобы можно было вызывать низкоуровневые функции операционной системы без риска конфликта с любым существовавшим программным обеспечением. Было добавлено программное прерывание BIOS номер 0x15, подфункция 0x85[4][5], которое сообщало ОС о нажатии или отпускании клавиши SysRq. В отличие от большинства клавиш, нажатие SysRq не добавляло чего-либо в буфер клавиатуры (англ.).

Низкоуровневая реализация SysRq, вероятно, планировалась для переключения между операционными системами. Так, во время создания первых IBM-PC в 1980-х, на них широко использовались три системы: PC DOS, CP/M-86 и UCSD p-System,[6] а в 1983-1984 появилась Xenix.

Специальная клавиша была создана чтобы обойти различные низкоуровневые TSR программы, работающие с клавиатурой в обход ОС, например для реализации горячих клавиш.

Применение

В ОС Windows SysRq, нажатая вместе с Alt (т.е. PrtScr), копирует изображение активного окна в буфер обмена.

Компания Microsoft иногда использовала SysRq для различных отладчиков, как уровня ОС, так и уровня приложения. Некоторые версии отладчика CodeView использовали клавишу для прерывания программы во время исполнения и переключения в отладочный интерфейс.[7] Удаленный отладчик ядра Windows NT использовал последовательность нажатий Ctrl+SysRq, Ctrl+SysRq для включения отладочного режима.[8]

В ПК Hyundai/Hynix Super-16 нажатие Ctrl+SysRq приводит к холодной перезагрузке, в том числе, когда Ctrl+Alt+Del уже не работает.

Во встраиваемых системах изредка SysRq переключает сигнал RESET# в нижний уровень.[9]

SysRq в UNIX/Linux

Клавиша SysRq — единственная прямая связь с ядром, которая работает всегда, если работает ядро, так как соответствующие комбинации напрямую перехватываются ядром и соответствующий код является частью драйвера клавиатуры (см. Magic SysRq key (англ.)). При помощи некоторых комбинаций клавиш можно заставить систему аварийно сбросить данные на диски, перемонтировать все файловые системы в режим «только чтение», перезагрузиться или перезапустить графическую подсистему даже при зависшей системе.

Использование

Сначала нужно убедиться, что использование клавиши включено: в конфигурации ядра CONFIG_MAGIC_SYSRQ должно иметь значение Y (например, в ядре, используемом в Debian по умолчанию, это так). Далее необходимо нажать и удерживать последовательно Alt и SysRq и нажать одну из командных клавиш. В графических окружениях (GNOME, KDE, …) нажатие PrtScr/SysRq обычно приводит лишь к созданию скриншота, и последующая команда может не восприниматься ядром. Это можно обойти, если дополнительно удерживать Ctrl, то есть полная комбинация будет Ctrl + Alt + SysRq + клавиша. Если вместо командной клавиши нажать любую другую, то на виртуальный текстовый терминал для сообщений ядра (обычно № 10) выведется несколько строчек краткой помощи по использованию. Это удобно использовать как быстрый способ убедиться, что параметр CONFIG_MAGIC_SYSRQ в загруженном ядре включен.

Список команд SysRq в Linux

Одновременное нажатие клавиш Alt + SysRq + буква.

Если SysRq вызывается с использованием Fn то следует зажать Alt + Fn + SysRq, затем отпустить Fn и ввести букву команды.

Alt + SysRq + H Help — выводит все доступные возможности SysRq, выделяя большой буквой клавишу действия;
Alt + SysRq + 0-9 loglevel0-9 — позволяет менять уровень подробности вывода от 0 (только критические сообщения) до 8 (самый подробный режим);
Alt + SysRq + B reBoot — выполняет немедленную перезагрузку системы аналогично кнопке RESET (без синхронизации и размонтирования файловых систем);
Alt + SysRq + C Crashdump — выполняет директиву kexec для перезагрузки чтобы получить сведения об ошибках;
Alt + SysRq + D holDs — показывает все блокировки, которые держат устройства или файлы;
Alt + SysRq + O powerOff — корректно выключает систему (если настроено и поддерживается, обычно это прямая команда отключения);
Alt + SysRq + S Sync — пытается синхронизировать все примонтированные файловые системы, при этом пишет в консоли «Emergency Sync». При успешном завершении выводится «Emergency Sync Complete»;
Alt + SysRq + U Unmount — пытается перемонтировать все примонтированные файловые системы в режим «только чтение»;
Alt + SysRq + T showTasks — выдаст список текущих задач и информацию о них в текущую консоль;
Alt + SysRq + N Nice — используется для того, чтобы сбросить приоритет задачи реального времени или просто с измененным приоритетом;
Alt + SysRq + W shoW-blocked-tasks — выдаст список всех непрерываемых (заблокированных, ждущих окончание ввода-вывода) задач;
Alt + SysRq + M showMem — выдаст информацию о доступной и занятой оперативной памяти, а также степени использования свопа;
Alt + SysRq + F Full — позволяет вызвать обработчик oom_kill (out-of-memory kill) для прерывания приложений, забравших слишком много памяти (может занять продолжительное время). Используйте его, если свободная память совсем истощилась, так что система не реагирует ни на какой иной ввод (курсор мыши не движется, индикаторы NumLock/CapsLock не включаются, но индикатор работы накопителя всё время включен);
Alt + SysRq + K secure access Key — убивает все процессы на текущей консоли. Её следует применять для снятия зависшего X-сервера. При этом графический сервер будет остановлен и невозможно будет увидеть ввод-вывод либо пока X-сервер не перезапустится, либо пока видеорежим не будет исправлен вручную;
Alt + SysRq + R unRaw — перехватывает управление мышью и клавиатурой у Х-сервера, что полезно, если Х-сервер завис: так можно перейти в консоль, убить Х-сервер или проверить логи;
Alt + SysRq + E tErm — послать сигнал завершения работы SIGTERM всем процессам, кроме init;
Alt + SysRq + I KILL — послать сигнал немедленного завершения работы SIGKILL всем процессам, кроме init.

То есть, например, для аварийной синхронизации данных следует выполнить последовательность Alt + SysRq + S, далее Alt + SysRq + U. После этого можно жать на сброс или, что то же самое, Alt + SysRq + B.

Более правильно экстренную перезагрузку стоит проводить, зажав клавиши Alt + SysRq и с интервалом в 2-3 секунды нажать последовательно: R E I S U B

  • unRaw (перехватить управление клавиатурой),
  • tErminate (послать SIGTERM всем процессам),
  • kIll (послать SIGKILL всем процессам, которые не смогли завершиться предыдущей командой),
  • Sync (синхронизировать файловые системы),
  • Unmount (перемонтировать файловые системы в режим «только чтение»),
  • reBoot. (и напоследок, совершить перезагрузку)

Есть и другие мнемоники для запоминания этой последовательности, см Magic SysRq key (англ.).

Напишите отзыв о статье "SysRq"

Примечания

  1. [www.faqs.org/faqs/msdos-programmer-faq/part2/ What is the SysRq key for?]. comp.os.msdos.programmer FAQ. Проверено 8 января 2008.
  2. Dan Gookin. [books.google.ru/books?id=PfQd0ydAPmUC& PCs For Dummies Quick Reference]. — С. 192. "Dead keys... SysRq"
  3. Киви Берд. [offline.homepc.ru/2003/90/31486/page2.html Давим на клавиши], "Домашний Компьютер" №12 (14 декабря 2003). Проверено 17 января 2014.
  4. [www.ctyme.com/intr/rb-1522.htm Ralf Brown's Interrupt List]. Проверено 8 января 2008.
  5. [books.google.ru/books?id=DXn-87kyJksC&pg=PT409&dq=sysrq+ PC Mag 25 Jun 1991] page 418 "Summary of BIOS Services"
  6. [www-03.ibm.com/ibm/history/exhibits/pc25/pc25_fact.html Original IBM PC Product fact sheet]. IBM Information Systems Division (August 12, 1981). Проверено 13 января 2010.
  7. [support.microsoft.com/kb/43648 Returning Control to CodeView]. Microsoft Knowledge Base. Проверено 8 января 2008.
  8. [support.microsoft.com/kb/900093 How to enable a remote kernel debugger connection on a computer that is running Windows Server 2003 with Service Pack 1]. Microsoft Knowledge Base. Проверено 8 января 2008.
  9. [www.microvga.com/pdf/uvga-text-ds.pdf MicroVGA datasheet].

Литература

  • [books.google.com/books?id=iFsPAQAAMAAJ System BIOS for IBM PC/XT/AT computers and compatibles] // Phoenix Technologies, Addison-Wesley Pub. Co., 1989

Ссылки

  • [www.linuxcenter.ru/lib/articles/system/sysrq_kill.phtml SysRq: Убийца процессов] // Linuxcenter.ru.
  • [www.it-simple.ru/?p=878 SysRQ или как привести в чувство «зависший» Linux]
  • [www.kernel.org/doc/Documentation/sysrq.txt Документация ядра Linux о Sysrq]  (англ.)

Отрывок, характеризующий SysRq


В противоположность Кутузову, в то же время, в событии еще более важнейшем, чем отступление армии без боя, в оставлении Москвы и сожжении ее, Растопчин, представляющийся нам руководителем этого события, действовал совершенно иначе.
Событие это – оставление Москвы и сожжение ее – было так же неизбежно, как и отступление войск без боя за Москву после Бородинского сражения.
Каждый русский человек, не на основании умозаключений, а на основании того чувства, которое лежит в нас и лежало в наших отцах, мог бы предсказать то, что совершилось.
Начиная от Смоленска, во всех городах и деревнях русской земли, без участия графа Растопчина и его афиш, происходило то же самое, что произошло в Москве. Народ с беспечностью ждал неприятеля, не бунтовал, не волновался, никого не раздирал на куски, а спокойно ждал своей судьбы, чувствуя в себе силы в самую трудную минуту найти то, что должно было сделать. И как только неприятель подходил, богатейшие элементы населения уходили, оставляя свое имущество; беднейшие оставались и зажигали и истребляли то, что осталось.
Сознание того, что это так будет, и всегда так будет, лежало и лежит в душе русского человека. И сознание это и, более того, предчувствие того, что Москва будет взята, лежало в русском московском обществе 12 го года. Те, которые стали выезжать из Москвы еще в июле и начале августа, показали, что они ждали этого. Те, которые выезжали с тем, что они могли захватить, оставляя дома и половину имущества, действовали так вследствие того скрытого (latent) патриотизма, который выражается не фразами, не убийством детей для спасения отечества и т. п. неестественными действиями, а который выражается незаметно, просто, органически и потому производит всегда самые сильные результаты.
«Стыдно бежать от опасности; только трусы бегут из Москвы», – говорили им. Растопчин в своих афишках внушал им, что уезжать из Москвы было позорно. Им совестно было получать наименование трусов, совестно было ехать, но они все таки ехали, зная, что так надо было. Зачем они ехали? Нельзя предположить, чтобы Растопчин напугал их ужасами, которые производил Наполеон в покоренных землях. Уезжали, и первые уехали богатые, образованные люди, знавшие очень хорошо, что Вена и Берлин остались целы и что там, во время занятия их Наполеоном, жители весело проводили время с обворожительными французами, которых так любили тогда русские мужчины и в особенности дамы.
Они ехали потому, что для русских людей не могло быть вопроса: хорошо ли или дурно будет под управлением французов в Москве. Под управлением французов нельзя было быть: это было хуже всего. Они уезжали и до Бородинского сражения, и еще быстрее после Бородинского сражения, невзирая на воззвания к защите, несмотря на заявления главнокомандующего Москвы о намерении его поднять Иверскую и идти драться, и на воздушные шары, которые должны были погубить французов, и несмотря на весь тот вздор, о котором нисал Растопчин в своих афишах. Они знали, что войско должно драться, и что ежели оно не может, то с барышнями и дворовыми людьми нельзя идти на Три Горы воевать с Наполеоном, а что надо уезжать, как ни жалко оставлять на погибель свое имущество. Они уезжали и не думали о величественном значении этой громадной, богатой столицы, оставленной жителями и, очевидно, сожженной (большой покинутый деревянный город необходимо должен был сгореть); они уезжали каждый для себя, а вместе с тем только вследствие того, что они уехали, и совершилось то величественное событие, которое навсегда останется лучшей славой русского народа. Та барыня, которая еще в июне месяце с своими арапами и шутихами поднималась из Москвы в саратовскую деревню, с смутным сознанием того, что она Бонапарту не слуга, и со страхом, чтобы ее не остановили по приказанию графа Растопчина, делала просто и истинно то великое дело, которое спасло Россию. Граф же Растопчин, который то стыдил тех, которые уезжали, то вывозил присутственные места, то выдавал никуда не годное оружие пьяному сброду, то поднимал образа, то запрещал Августину вывозить мощи и иконы, то захватывал все частные подводы, бывшие в Москве, то на ста тридцати шести подводах увозил делаемый Леппихом воздушный шар, то намекал на то, что он сожжет Москву, то рассказывал, как он сжег свой дом и написал прокламацию французам, где торжественно упрекал их, что они разорили его детский приют; то принимал славу сожжения Москвы, то отрекался от нее, то приказывал народу ловить всех шпионов и приводить к нему, то упрекал за это народ, то высылал всех французов из Москвы, то оставлял в городе г жу Обер Шальме, составлявшую центр всего французского московского населения, а без особой вины приказывал схватить и увезти в ссылку старого почтенного почт директора Ключарева; то сбирал народ на Три Горы, чтобы драться с французами, то, чтобы отделаться от этого народа, отдавал ему на убийство человека и сам уезжал в задние ворота; то говорил, что он не переживет несчастия Москвы, то писал в альбомы по французски стихи о своем участии в этом деле, – этот человек не понимал значения совершающегося события, а хотел только что то сделать сам, удивить кого то, что то совершить патриотически геройское и, как мальчик, резвился над величавым и неизбежным событием оставления и сожжения Москвы и старался своей маленькой рукой то поощрять, то задерживать течение громадного, уносившего его вместе с собой, народного потока.


Элен, возвратившись вместе с двором из Вильны в Петербург, находилась в затруднительном положении.
В Петербурге Элен пользовалась особым покровительством вельможи, занимавшего одну из высших должностей в государстве. В Вильне же она сблизилась с молодым иностранным принцем. Когда она возвратилась в Петербург, принц и вельможа были оба в Петербурге, оба заявляли свои права, и для Элен представилась новая еще в ее карьере задача: сохранить свою близость отношений с обоими, не оскорбив ни одного.
То, что показалось бы трудным и даже невозможным для другой женщины, ни разу не заставило задуматься графиню Безухову, недаром, видно, пользовавшуюся репутацией умнейшей женщины. Ежели бы она стала скрывать свои поступки, выпутываться хитростью из неловкого положения, она бы этим самым испортила свое дело, сознав себя виноватою; но Элен, напротив, сразу, как истинно великий человек, который может все то, что хочет, поставила себя в положение правоты, в которую она искренно верила, а всех других в положение виноватости.
В первый раз, как молодое иностранное лицо позволило себе делать ей упреки, она, гордо подняв свою красивую голову и вполуоборот повернувшись к нему, твердо сказала:
– Voila l'egoisme et la cruaute des hommes! Je ne m'attendais pas a autre chose. Za femme se sacrifie pour vous, elle souffre, et voila sa recompense. Quel droit avez vous, Monseigneur, de me demander compte de mes amities, de mes affections? C'est un homme qui a ete plus qu'un pere pour moi. [Вот эгоизм и жестокость мужчин! Я ничего лучшего и не ожидала. Женщина приносит себя в жертву вам; она страдает, и вот ей награда. Ваше высочество, какое имеете вы право требовать от меня отчета в моих привязанностях и дружеских чувствах? Это человек, бывший для меня больше чем отцом.]
Лицо хотело что то сказать. Элен перебила его.
– Eh bien, oui, – сказала она, – peut etre qu'il a pour moi d'autres sentiments que ceux d'un pere, mais ce n'est; pas une raison pour que je lui ferme ma porte. Je ne suis pas un homme pour etre ingrate. Sachez, Monseigneur, pour tout ce qui a rapport a mes sentiments intimes, je ne rends compte qu'a Dieu et a ma conscience, [Ну да, может быть, чувства, которые он питает ко мне, не совсем отеческие; но ведь из за этого не следует же мне отказывать ему от моего дома. Я не мужчина, чтобы платить неблагодарностью. Да будет известно вашему высочеству, что в моих задушевных чувствах я отдаю отчет только богу и моей совести.] – кончила она, дотрогиваясь рукой до высоко поднявшейся красивой груди и взглядывая на небо.
– Mais ecoutez moi, au nom de Dieu. [Но выслушайте меня, ради бога.]
– Epousez moi, et je serai votre esclave. [Женитесь на мне, и я буду вашею рабою.]
– Mais c'est impossible. [Но это невозможно.]
– Vous ne daignez pas descende jusqu'a moi, vous… [Вы не удостаиваете снизойти до брака со мною, вы…] – заплакав, сказала Элен.