我没有找到这样的问题。我有一个 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
您可以通过以下几种方法来解决问题:
创建一个在 systemd-nspawn 容器内执行的脚本,并将要运行的命令放入其中 (
systemd-nspawn -D .. /your-script
)。如果要在运行命令后获取交互式 shell,请exec bash -i
在脚本末尾放置类似 的内容。如果您想保留当前脚本,可以将命令作为输入提供给 bash:
#!/bin/bash systemd-nspawn --pipe -q --bind /usr/bin/qemu-arm-static -D /mnt/project /bin/bash << EOF apt-get update apt-get -y upgrade EOF
如果您之后不需要交互式 shell,那么这种方法就可以正常工作。