Согласно этой ошибке проблема заключается в том, что ссылка на grubenv указывает на /boot/grub2/grubenv, но /boot не монтируется в среде меню grub. Вышеупомянутая ошибка связана с Fedora, но я предполагаю, что то же самое относится и к Centos. У меня возникла эта проблема с CentOS 7 и grub2.
Система загружается нормально, но только после нажатия клавиши, которая отклоняет сообщение о том, что grubenv не существует. Вышеупомянутая ошибка также включает исправление. Симлинкинг
/boot/grub2/grubenv ->../efi/EFI/centos/grubenv
Должно решить эту проблему.
Как?
sudo rm /boot/grub2/grubenv
sudo ln -s../efi/EFI/centos/grubenv /boot/grub2/grubenv
Убедитесь, что вы также удалили grub2 -efi, если он вам не нужен, так как он вызывает эту проблему.
sudo yum remove grub2-efi
echo $?
запускается после завершения всего конвейера (кода до завершения ||
).
В случае inotifywait … | awk … || echo …
после завершения awk
inotifywait
все еще выполняется. Он получит SIGPIPE
, только если (, когда )попытается записать больше. Попробуйте touch test.file
еще раз, чтобы добраться до этой точки и вызвать echo
.
С другой стороны, tail
в tail -f … | awk …
завершается сразу после завершения awk
, потому что GNU tail
предпринимает специальные шаги для обнаружения этой ситуации .
Чтобы воспроизвести это с помощью inotifywait, нужно будет перенаправить PID и отправить SIGPIPE через awk:
{ inotifywait -m -e OPEN./ & echo $! ; } |
awk 'NR==1 {pid=$0}
/OPEN/ {print $0,pid
system("echo kill -13 "pid)
exit 122 }' ||
echo $?