gpt4 book ai didi

linux - 使用 rc.local 回显密码命令

转载 作者:太空宇宙 更新时间:2023-11-04 12:49:37 27 4
gpt4 key购买 nike

我们有一个命令来处理我们的 RHEL7 服务器与 Sudo 权限管理器的连接,该命令在从 rc.local 脚本运行时不起作用。下面的命令使用更通用的名称而不是我们的特定 Assets 。

回显“密码” |/opt/quest/sbin/pmjoin_plugin -b -a -v -q -d masterport=12345 -d FailOverTimeOut=10 -d selecthostrandom=YES somehostname.com someotherhostname.com >>/var/log/Build.log

手动运行或从其他 bash 脚本运行的命令完美无缺,但是当它从 rc.local 中执行时,当提示输入密码时,就好像密码没有通过管道传输到命令中。

我读过一些建议,例如“plymouth quit”,但没有帮助。

有没有人有过在 rc.local 脚本中以这种方式将密码“回显”到命令的经验,以便您可以继续执行提示输入密码的交互式脚本?

最终,这正是我们希望在首次启动实例时运行的东西。因此,如果有另一种方法可以让 shell 脚本在启动时运行一次,然后在没有 rc.local 的情况下自行删除,那么我们也可以探索该路径(crontab 等?)。

最佳答案

我最终实现了适合我的情况的解决方案。虽然它不如让事情在 rc.local 中运行那么干净,但它会完成工作。

我从我们的 rc.local 脚本中取出命令并将其放入它自己的 .sh 脚本中。我们的 AMI 构建过程将其存储在/tmp/nameofscript.sh 中,我还创建了一个 systemd 服务文件,AMI 过程将其存储在/etc/systemd/system/nameofservicefile.service 中。该服务文件执行时带有 ExecStart=/tmp/nameofscript.sh,以便在重新启动时运行。我们的 rc.local 以 phase1 和 phase2 的方式运行,phase1 最后重新启动,所以我在 phase1 部分​​添加了一行以在重新启动之前使用“systemctl enable nameofservicefile.service”启用服务第一阶段的最后一步。

走这条路可以使 PM Sudo join 命令在我们的“phase2”步骤中运行,因为在“phase1”结束时重新启动会触发来自 systemd 服务的脚本。

为确保它不会在每次重新启动时运行,我的/tmp/nameofscript.sh 脚本有步骤 rm -f/etc/systemd/system/nameofservicefile.server 并使用 rm -- "$0"删除自身。

这可能是一种困惑的方式,但可以完成工作。

关于linux - 使用 rc.local 回显密码命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37665598/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com