我希望我的 Terraform 配置能够配置服务器并在最后通过调用命令并继续运行它来启动服务。我尝试使用 nohup 和 screen 使用远程执行:
nohup:
provisioner "remote-exec" {
inline = "nohup sudo command &"
}
screen :
provisioner "remote-exec" {
inline = "screen -d -m sudo command"
}
我通过手动登录来检查命令是否正在运行。但它们并不保持进程运行。如果我手动尝试这些命令,并且使用 ssh 调用它们也可以,那么这些命令确实有效。
如何使用 Terraform 配置来启动命令并保持其运行,同时返回控制流?
最佳答案
尝试在 nohup 之后添加 sleep 。为我工作。我怀疑在后台执行最后一个远程执行可以让 Terraform 在子进程有机会启动之前关闭连接,尽管有 nohup。
provisioner "remote-exec" {
inline = [
"nohup sudo command &",
"sleep 1"
]
}
关于terraform - 如何使用 Terraform 配置启动远程服务?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36207752/