我一直试图通过计算机引导上的启动脚本,以非交互的方式自动安装postfix。
经过一些研究后,我发现了一些建议,我可以尝试使用所需的配置在示例计算机上手动安装它,然后通过以下方法获得有关启动脚本运行的配置的正确答案。
debconf-utils package command debconf-get-selections | grep postfix >preseed.cfg问题在于一种配置,即邮件名,这是因为我的实例机器是由gcp云主机以非预定的方式生成的,在我最初将第一个配置选择传递为:
debconf-set-selections <<< 'postfix postfix/main_mail_type string "Local only" 现在的问题是,如何才能保留默认值呢?(如果这是一个有人参与的安装,只需单击“确定”即可完成)
发布于 2018-11-07 19:09:57
谢谢你,克莎拉南达!我想我现在知道窃听器在哪里了。在这个bug出现之前,我确实尝试使用一些expect脚本并在其中生成bash下标,作为一种通过现成的expect-发送问题和答案对系列间接安装postifiX的方法。后来,我决定改变这个计划,完全删除expect脚本,转而使用DEBIAN_FRONTEND="noninteractive" with debconf-set-selections command。现在,正如我从这个站点上的一些帖子中了解到的,问题显然是由于在主启动脚本中调用这个bash下标的修改后的残留物(您可能知道postfix安装应该以根权限运行),因为它每次运行时都会在调用这个下标时抛出异常。在复习了这里的一些文章之后,我发现我可以通过修改下标代码来解决这个问题,引入一些代码如下所示
UID=$(ID -U)
if [xUID != x0]
then
printf -v cmd_str '%q'"$0" "$@"
exec su -c "$cmd_str"
fi
#the rest of the script code
#continues hereunder在我对下标做了修改之后,删除了它的声明,激活了chmod,通过注释删除了它的#!/bin/bash行,并在程序上将它的功能部分包含到主启动脚本中--现在脚本按其应该运行的方式运行。
https://unix.stackexchange.com/questions/480095
复制相似问题