Иногда процессы игнорируют сигнал SIGINT, отправляемый Ctrl kbd> - C kbd> в Bash. Например, man
и vi
. Предполагая, что вы не хотите гуглить или читать руководство по выходу из запущенного процесса, есть ли какая-нибудь последовательность клавиш, которая будет работать всегда (не покидая терминала)?
Отправьте сигнал SIGQUIT с Ctrl +\.
.. $ sleep 10
^\Quit
→ Это эквивалентно kill -3 pid
. Программы, запущенные в пространстве пользователя, не игнорируют sigquit.
Существует также ряд сочетаний клавиш Magic SysRq. Один из более интересных - это: Alt+SysRq+k. Это уничтожает каждый процесс на текущей виртуальной консоли. Если один из Ваших ttys полностью и крайне повреждается, это может использоваться для возвращения. На tty под управлением X.org это может использоваться для уничтожения X без милосердия.
Ключ SysRq, на большинстве клавиатур, то же как Ключ Печати. На моем ноутбуке это может быть вызвано с помощью ключа Fn; Т.е. Alt→Fn→Print→k в том порядке.
Вот некоторые ярлыки управления базовым процессом:
bg
возобновиться в фоновом режиме, fg
повысить до переднего плана)Примечание: Ctrl+Z, в отличие от Ctrl+C и Ctrl + \, также работает на man
, vi
, less
,и т.п..
Когда в сомнении, follwing процедура будет почти всегда работать:
~$ sleep 10
^Z
[5]+ Stopped sleep 10
~$ ps
PID TTY TIME CMD
4804 pts/0 00:00:00 bash
6207 pts/0 00:00:00 sleep
6208 pts/0 00:00:00 ps
~$ kill -9 6207
[5]+ Killed sleep 10
~$
^Z конечно, указывает, что Ctrl+Z был нажат.
Для более всестороннего взгляда на Оболочки и Терминалы, также см. мои ответы на:
Попробуйте один из них:
Ctrl kbd> + 4 kbd>
Ctrl kbd > + \ kbd>
Или:
Ctrl kbd> + Z kbd> и затем выполните:
kill %1
где %1
- номер задания, которое было возвращено при нажатии Control KBD> - Z KBD>. Добавьте -9
, чтобы заставить убить.
Когда вы находитесь в текстовой консоли, вы также можете попробовать: Ctrl kbd> - SysRq kbd>. Ядро должно убить процесс.
Или SysRq kbd> - k kbd>, убейте все процессы на текущей виртуальной консоли (можно также убить программы X и svgalib).
Примечание. Когда магические ключи SysRq используются для уничтожения замороженной графической программы, у программы нет шансов восстановить текстовый режим. Это может сделать все нечитаемым.
blockquote>
Иногда CTRL + C kbd> отправляется в неправильную программу или входной канал. Это особенно характерно для таких редакторов, как vi
, с командами с конвейерным выводом, сложными командами bash, включающими циклы и т. Д.
Простое и быстрое решение - приостановить задание CTRL + Z kbd>, а затем уничтожить его по номеру задания: kill %1
или kill -9 %1
и т. Д.
Попробуйте Ctrl+Alt+Backspace
При использовании человечности 10.04, Вы хотите позволить этому ключу работать.
Включить Клавишу Backspace высокого звука управления
Система Goto-> Предпочтения-> Клавиатура
Выберите вкладку Layouts и нажмите на Параметры макета.
Выберите Сочетание клавиш, чтобы уничтожить X-сервер и включить Управление + Высокий звук +Backspace.
Примечание:
Нажатие Ctrl-Alt-Backspace перезапустит Ваш X-сервер.
Возможно, вы изменили ярлык копирования с:
CTRL kbd> + SHIFT kbd> + C kbd>
CTRL kbd> + C kbd>
Таким образом, когда вы пытаетесь убить процесс, CTRL < / kbd> + C kbd> не работает.
Попробуйте заменить ярлык копирования на CTRL kbd> + SHIFT kbd> + C kbd>.
Откройте «Терминал» → «Настройки» → «Ярлыки» и выполните поиск, если вы по ошибке заменили какую-либо клавишу на Ctrl+C.