2

Я не нашел такой вопрос. У меня есть скрипт bash (запущенный в Debian), который запускает сеанс systemd-nspawn . После этого я хотел бы продолжить свой сценарий, поскольку я нахожусь в порожденном компьютере:

#!/bin/bash
systemd-nspawn -q --bind /usr/bin/qemu-arm-static -D /mnt/project /bin/bash

apt-get update
apt-get -y upgrade

После выполнения команды systemd-nspawn сценарий приостанавливается, и приглашение консоли находится внутри порожденной системы. Когда я выхожу, сценарий возобновляется, но в локальной машине.

1 ответ1

3

Пара альтернатив, как вы можете подойти к вашей проблеме:

  1. Создайте скрипт, который вы выполняете, внутри контейнера systemd-nspawn и разместите там команды, которые вы хотите запустить (systemd-nspwan -D .. /your-script). Если вы хотите получить интерактивную оболочку после запуска ваших команд, поместите что-то вроде exec bash -i в конец скрипта.

  2. Если вы хотите сохранить текущий скрипт, вы можете предоставить свои команды в качестве ввода для bash:

    #!/bin/bash
    systemd-nspawn -q --bind /usr/bin/qemu-arm-static -D /mnt/project /bin/bash << EOF
    apt-get update
    apt-get -y upgrade
    EOF
    

    Это прекрасно работает, если впоследствии вам не понадобится интерактивная оболочка.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .