Это потому, что команда echo
не является частью сценария. Сценарий выполняется в подоболочке en, когда сценарий завершает работу, переменная FILES
больше не доступна. Чтобы сделать переменную FILES
доступной для текущей оболочки, используйте:
$ source ./TEST.txt
$ echo ${FILES[@]}
Создайте сценарий очистки как/etc/initramfs-tools/scripts/init-bottom/cleanup.sh
:
#!/bin/sh
echo "Killing dropbear"
killall dropbear
exit 0
...и сделать его исполняемым:
chmod +x /etc/initramfs-tools/scripts/init-bottom/cleanup.sh
Обновите initramfs как обычно:
update-initramfs -u
У вас уже есть скрипт, который вызывает переключатель _root, поэтому просто вставьте туда строку, чтобы остановить dropbear.
Вы также можете остановить его из вашего ssh-соединения. Как только вы входите в систему, есть два процесса dropbear. Первый — это процесс, который принимает новые соединения, второй — это процесс, обслуживающий ваше соединение. На этом этапе вы можете убить первый процесс, так как вам не нужно более одного соединения. Второй процесс завершится после отключения.
На этом раннем этапе процесса загрузки вы можете быть уверены, что процесс, принимающий новые подключения, имеет меньший номер процесса, хотя есть и другие способы его идентификации.