Мы используем sysvinit для построения нашей системы. Когда я ввожу команду poweroff
, иногда система не имеет никакого ответа.
Я провел некоторое исследование и обнаружил, что в функции check_init_fifo()
из init строка:
n = read(pipe_fd, &request, sizeof(request));
иногда возвращает -1, и код ошибки EAGAIN
.
Я изменил код инициализации и позволил ему повторить попытку 5 раз, когда код ошибки EAGAIN, но не работает должным образом.
Кто-нибудь знает, почему иногда read /dev/initctl
возвращают -1? Как решить эту проблему?
Спасибо.