我有一个小型的 Kickstart 脚本,它(除其他外)连接到我们的 Puppet 主机,批准证书请求,然后为新服务器创建一个基本框架。
在我的 Kickstart 帖子部分中我有以下命令。
# Run the setup script.
exec < /dev/tty6 > /dev/tty6 2>&1
chvt 6
wget http://enoch/ks/setup.sh -O /root/setup.sh
chmod +x /root/setup.sh
bash /root/setup.sh
# And go back to Anaconda
chvt 1
exec < /dev/tty1 > /dev/tty1 2>&1
在 setup.sh 中我有一行
ssh -t $USERNAME@puppetmaster auto_client.sh $HOSTNAME
从命令行调用时,此脚本运行正常,但是当我从 Kickstart 菜单运行此脚本时,我的 SSH 窗口会在原始终端下打开,并破坏脚本的其余部分。我该如何纠正这个问题?
答案1
虽然这不是解决底层行为的办法,但我通过将 SSH 二进制文件的虚拟终端改回 1 来解决了这个问题,如下所示。
echo Running server side script..
chvt 1
ssh -q -t $USERNAME@puppetmaster auto_client.sh $HOSTNAME
chvt 6