Но эта последняя команда в «родительском» скрипте заменяет его на «son». Это то, что делает exec
. У вас не должно быть родительского процесса, который вы могли бы убить.
Такие сценарии могут работать только , когда сценарий имеет PID 1, так что других процессов нет [*]. Вы должны были загрузиться с помощью init = / bin / bash
. Не забудьте вызвать свой сценарий с помощью exec
, чтобы он заменил PID 1.
Не используйте ленивое отключение, это означает, что вы не увидите сообщений об ошибках.
Я на 99% уверен, что ваше ленивое размонтирование еще не завершено. Я не уверен, как это проверить, кроме случаев, когда вы используете ext4 или ext3, file -s / dev / $ ROOT_DEV
должен показывать «требуется восстановление журнала» (т.е. не был полностью размонтирован).
Я ожидаю, что ваша первая попытка сработает, если вы удалите kill
и будете следовать указанным выше инструкциям, выделенным жирным шрифтом. Хотя я мог что-то упустить.
[*] или вам нужно будет сказать init, что нужно повторно выполнить себя после того, как путь, по которому он должен находиться в целевой файловой системе. Но для меня это звучит ужасно. Просто будьте проще.