Я знаю, что / sbin / init имеет специальную защиту от SIGKILL и SIGSTOP из ядра по очевидным причинам.
Я пытался сообщить ядру, что хочу получить SIGSTOP с помощью ioctl () (аналогично запросам SIGABRT и SIGSEGV в main ()):
if (ioctl (0, KDSIGACCEPT, SIGSTOP) == 0) {
nih_signal_set_handler (SIGSTOP, stop_handler);
но STOP не приходит в stop_handler () (насколько я знаю, поскольку nih_error () не печатается в журналах).
В stop_handler () я переустанавливаю Sighandler STOP на SIG_DFL (в противном случае он все равно возвращается к нашему обработчику), но это, вероятно, приводит к тому, что ядро снова его игнорирует.
Как мне сообщить ядру, что я хочу остановить init?