При использовании терминала иногда нужно ломать программу. Иногда вы нажимаете Ctrl kbd> - c kbd>, иногда Ctrl kbd> - x kbd>, а иногда Ctrl kbd> - < kbd> z kbd>
В некоторых случаях это может быть просто закрытие кавычки или несколько раз нажатие клавиши ввода, даже есть случаи, когда Ctrl kbd> - d kbd> будет работать.
Поэтому, когда я застреваю, как идиот, я начинаю толкать эти ключи, как идиот, в надежде, что процесс закончится. В 95% случаев это работает, и когда я в отчаянии, я просто закрываю терминал, и это работает 100% времени. Я уверен, что есть логическая причина для различных состояний, потому что программа находится в определенном состоянии, но все, что я хочу сделать, это просто сломать приложение и вернуться к приглашению bash.
Есть ли супер-ключ, который прервет процесс без необходимости смешивать эти 4 магических ключа в надежде, что приложение будет закрыто?
Суперключ - это , закрывающий терминал. :-) Это или кнопка включения на вашем компьютере.
Каждая из комбинаций клавиш Ctrl kbd> + c kbd>, Ctrl kbd> + x kbd>, Ctrl kbd> + z kbd> и Ctrl kbd> + d kbd> делают другое.
Ctrl kbd> + c kbd>: генерирует сигнал прерывания (SIGINT).
Ctrl kbd> + x kbd>: я не уверен, что это делает.
Ctrl kbd> + z kbd>: приостановить процесс, позволяя возобновить его на более позднем этапе (SIGSTOP).
Ctrl kbd> + d kbd>: отправляет символ конца файла (EOF).
Каждый процесс может интерпретировать эти сигналы так, как они считают нужным. Следовательно, существует некоторая неоднородность в ответе.
Более общим способом завершения процесса было бы уничтожение его сигналом SIGKILL, наиболее агрессивный способ, который заключается в том, что (я думаю) такое же, как закрытие окна терминала. Хотя лучше сначала попробовать Ctrl kbd> + d kbd> и Ctrl kbd> + c kbd>, потому что это сигналы, которые процесс может предвидеть, что позволит ему закончиться предсказуемым и более безопасным способом.
Проверьте страницу руководства с помощью man 7 signal
.