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