ctrl + c сгенерирует SIGINT
, которое может быть перехвачено или заблокировано приложением.Если вы просто запустите killall mysqld
из другого терминала, вы отправите SIGTERM
процессу, который также может быть перехвачен или заблокирован, но даст гораздо более сильный намек на то, что процесс должен быть немедленно завершен.(Это будет хорошо для чистого закрытия таблиц базы данных.)
Ctrl + \ сгенерирует SIGQUIT
, который может быть перехвачен или заблокирован приложением.(Если приложение не перехватит или не заблокирует этот сигнал, ОС сгенерирует для вас файл ядра.)
Вы можете отправить SIGKILL
вручную, используя kill(1)
;SIGKILL
не может быть перехвачен или заблокирован, и поэтому всегда будет останавливать процесс, если ядро достаточно живо для обработки сигнала.Найдите пид, используя pidof
или другой механизм, и запустите kill -SIGKILL pid
.Обратите внимание, что это грубая смерть;процессу не дают возможности выполнить очистку после себя, поэтому таблицы базы данных могут остаться в несогласованном состоянии, для восстановления которого может потребоваться некоторое время при следующем запуске.
Если вы просто хотите получить запрос назад, выможно использовать ctrl + z , чтобы приостановить процесс.Затем вы можете использовать команды bg
и fg
вашей оболочки, чтобы позволить процессу продолжить работу в фоновом режиме, или повторно присоединиться к процессу на переднем плане.(Эта терминология бессмысленна, но я надеюсь, что она передает идею.)