Причина, по которой echo
выполняется после выхода sudo
, не имеет ничего общего со сменой пользователя.
Упростим скрипт:
...
cat
echo "After cat"
...
Команда echo
будет выполнена после завершения cat
, как и любая другая последовательность команд, которую вы пишете.
Если вы хотите, чтобы некоторые команды выполнялись внутри chroot, вы должны передать их в качестве параметров в chroot.
Если в качестве оболочки входа в систему используется /bin/bash
, команда
chroot /dir
эквивалентно
chroot /dir /bin/bash -i
Это означает, что он запускает интерактивную оболочку. Вы можете выполнить некоторые команды, создав сценарий оболочки, доступный в chroot, или указав их в командной строке
chroot /dir /path/to/script
chroot /dir /bin/bash -c 'some commands; more commands'
Программа chroot
всегда будет ждать завершения команды, хотя и сценарий, и командная строка могут запускать процессы в фоновом режиме.