后是否可以在Redhat linux中恢复cfn-init?
我有正确的 cfn-hup 和 cfn-auto-reloader 设置。我将"重新启动"作为命令之一。所有命令都完美运行,直到此重新启动命令。机器从重新启动回来后,它不会恢复其余的 cfn-init 命令。在窗口中有"等待完成后"选项。Linux中有什么这样的东西吗?只是想知道我是否在这里错过了什么。谢谢!!
总的来说,在 Linux 中,你不必在脚本中重新启动,除非它是内核更新之类的东西。话虽如此,不要认为 cfn-init 有直接的方法可以在 Linux 中重新启动后恢复操作,但您可以使用此 Linux 解决方法(使用文件恢复脚本)并在用户数据中调用它以在重新启动后恢复 cfn-init 的剩余部分。https://unix.stackexchange.com/questions/145294/how-to-continue-a-script-after-it-reboots-the-machine
我通常使用用户数据处理 Linux 重启,这是 Amazon Linux 2 的一个例子,但它也应该适用于 Redhat。
UserData:
Fn::Base64: !Sub |
#!/bin/bash -xe
exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1
# update the system
yum update -y
# Check if kernel update requires a reboot, if yes it does reboot
needs-restarting -r ||
{
# reset user data so it processes again after reboot
rm -f /var/lib/cloud/instances/*/sem/config_scripts_user
echo rebooting ... $(date)
reboot
exit
}
# commands that run after reboot ...