terraform - 如何使用 Terraform 配置启动远程服务?

标签 terraform gnu-screen nohup

我希望我的 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/

相关文章:

macos - 无法在 screen 内使用 pbcopy -clipboard

python - Nohup 没有将日志写入输出文件

linux - nohup 命令在 Chef 资源中不起作用

linux - nohup 与 scripy 要求参数

terraform - 如何在 terraform 中对多个来源组合的资源组 ID 运行 for_each?

amazon-web-services - ECS 可以在单独的帐户中访问 ECR

amazon-web-services - Terraform NAT 网关设置路由表

amazon-web-services - 使用 terraform 将资源策略附加到 AWS secret 管理器的 lambda 函数

linux - 我看到一个不正确的 pid

php - 使用 php 终止 GNU screen session