Отправка стандартного уничтожения процессу по умолчанию отправляет (в соответствии с википедией )SIGTERM. Это уведомляет процесс о том, что он должен завершить работу. Это хороший способ справиться с процессом, и он выглядит следующим образом:
В отправке SIGTERM нет ничего, что заставило бы процесс выйти. Он может полностью игнорировать это или вести себя так, как хочет.
Kill -9 отправляет SIGKILL. Вам не разрешено регистрировать обработчик для SIGKILL, что означает, что по умолчанию он называется (пространство ядра, я полагаю, -кто-то поправит меня здесь ). В этом случае у вас нет возможности сделать вышеперечисленное,ваш процесс немедленно удаляется из списка исполняемых процессов, а его память и все остальное уничтожаются. Это может явно вызвать проблемы, если вы были на полпути к записи в файл.
Некоторые процессы будут принимать несколько сигналов SIGTERM перед завершением работы -Вы пробовали это? Процесс также может документировать, какие сигналы вы можете отправить ему, чтобы завершить его корректно.
Процесс, находящийся в плохом состоянии, может не иметь возможности обратиться к обработчику сигнала, даже если он зарегистрирован. Есть моменты, когда сигнал не может быть получен (Вы находитесь в состоянии прерывания или уже обрабатываете другой сигнал, и некоторые другие, которые я не могу точно определить в данный момент ). ЕСЛИ ваш процесс застрял (по какой-либо причине )в одной из этих точек, обработчик SIGTERM никогда не запустится, независимо от того, сколько раз вы его отправляете. Единственным решением здесь является SIGKILL, однако я даже видел случаи, когда этот сигнал игнорируется, и в этом случае необходима перезагрузка системы.
Чтобы ответить на ваш вопрос -, в каких случаях убийство игнорируется и настаивают на убийстве с помощью -9:
В системах UEFI необходимо указывать устройство, а не раздел. grub-install
должен автоматически определить правильное устройство, поэтому
sudo grub-install
и
sudo grub-install /dev/nvme0n1
оба должны работать.