Механизм аварийного завершения процессов в Linux работает с помощью сигналов. 2 Их передаёт система, но также их может передавать пользователь с помощью специальных команд или даже сочетаний клавиш в терминале. 2
Некоторые основные сигналы для завершения процесса:
- SIGINT. 2 Отправляется процессу, запущенному из терминала, с помощью сочетания клавиш Ctrl+C. 2 Процесс правильно завершает все свои действия и возвращает управление. 2
- SIGQUIT. 2 Сообщает программе, запущенной в терминале, что нужно завершиться. 2 Программа может выполнить корректное завершение или проигнорировать сигнал. 2
- SIGHUP. 2 Сообщает процессу, что соединение с управляющим терминалом разорвано. 2
- SIGTERM. 2 Немедленно завершает процесс, но обрабатывается программой, поэтому позволяет ей завершить дочерние процессы и освободить все ресурсы. 2
- SIGKILL. 2 Тоже немедленно завершает процесс, но, в отличие от предыдущего варианта, он не передаётся самому процессу, а обрабатывается ядром. 2 Поэтому ресурсы и дочерние процессы остаются запущенными. 2
Для передачи сигналов процессам в Linux используется утилита kill. 2 По умолчанию, если этот параметр не указан, используется сигнал SIGTERM. 2
Также для аварийного завершения процессов в Linux можно использовать клавишу SysRq. 5 При помощи некоторых комбинаций клавиш можно заставить систему аварийно сбросить данные на диски, перемонтировать все файловые системы в режим «только чтение», перезагрузиться или перезапустить графическую подсистему даже при зависшей системе. 5