Inicie o systemd-nspawn e execute comandos dentro

1

Não encontrei uma pergunta como essa. Eu tenho um script bash (rodando no Debian) que inicia uma sessão systemd-nspawn . Depois disso, gostaria de continuar meu roteiro enquanto estou na máquina gerada:

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

apt-get update
apt-get -y upgrade

Depois de executar o comando systemd-nspawn , o script é suspenso e o prompt do console está dentro do sistema gerado. Quando saio, o script é retomado, mas na máquina LOCAL.

    
por Mark 21.08.2017 / 15:00

1 resposta

2

Algumas alternativas de como você pode abordar seu problema:

  1. Faça um script que você executa dentro do contêiner systemd-nspawn e coloque os comandos que deseja executar lá ( systemd-nspwan -D .. /your-script ). Se você deseja obter o shell interativo depois de executar seus comandos, coloque algo como exec bash -i no final do script.

  2. Se você quiser manter seu script atual, você pode fornecer seus comandos como entrada para o 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
    

    Isso funciona bem se você não precisar de um shell interativo depois.

por 21.08.2017 / 17:23