Can';“得不到”;“远程执行”;启动tomcat

Can';“得不到”;“远程执行”;启动tomcat,tomcat,terraform,apache-tomee,oracle-call-interface,oracle-cloud-infrastructure,Tomcat,Terraform,Apache Tomee,Oracle Call Interface,Oracle Cloud Infrastructure,在配置实例时,我使用“RemoteExec”执行一些命令,然后通过terraform启动tomcat实例。它看起来像这样: resource "null_resource" "mount_fss_on_DFSrvr" { depends_on = ["oci_core_instance.DFSrvr", "oci_file_storage_export.export_FileListener_FileListenerMount", ] count = "${var.proddfsrvr_c

在配置实例时,我使用“RemoteExec”执行一些命令,然后通过terraform启动tomcat实例。它看起来像这样:

resource "null_resource" "mount_fss_on_DFSrvr" {
depends_on = ["oci_core_instance.DFSrvr",
  "oci_file_storage_export.export_FileListener_FileListenerMount",
]

count = "${var.proddfsrvr_count}"

provisioner "remote-exec" {
  connection {
    agent       = false
    timeout     = "15m"
    host        = "${oci_core_instance.DFSrvr.*.public_ip[count.index % var.proddfsrvr_count]}"
    user        = "opc"
    private_key = "${file(var.ssh_private_key)}"
  }

  inline = [
   "some commands",
    "./catalina.sh start",
    "exit"
  ]
}
}

输出显示tomcat已启动,但当我查看实例时,日志显示它尚未启动(没有日志记录)。我可以ssh到实例中并运行“/catalina.shstart”,它工作正常。我还尝试过创建一个服务,并在remoteexecinline命令中运行“sudo-service-tomee-start”而不是“/catalina.sh-start”,但这也不起作用。我做错了什么

  null_resource.mount_fss_on_DFSrvr[1] (remote-exec): Using CATALINA_BASE:   /apache-tomee-plus-7.0.4
null_resource.mount_fss_on_DFSrvr[1] (remote-exec): Using CATALINA_HOME:   /apache-tomee-plus-7.0.4
null_resource.mount_fss_on_DFSrvr[1] (remote-exec): Using CATALINA_TMPDIR: /apache-tomee-plus-7.0.4/temp
null_resource.mount_fss_on_DFSrvr[1] (remote-exec): Using JRE_HOME:        /usr
null_resource.mount_fss_on_DFSrvr[1] (remote-exec): Using CLASSPATH:       /apache-tomee-plus-7.0.4/bin/bootstrap.jar:/apache-tomee-plus-7.0.4/bin/tomcat-juli.jar
null_resource.mount_fss_on_DFSrvr[1] (remote-exec): Tomcat started.

尝试为它提供绝对路径,而不是像
source~/tmp/catalina.sh
那样的路径。它可能不会从你想的地方开始

第二步删除
退出
行。它可能在安装完成之前退出。有些事情在写入磁盘之前完成。您也可以尝试
source~/path/catalina;同步


此外,这是否需要sudo权限?

尝试为其提供绝对路径,而不是
/
类似于
source~/tmp/catalina.sh
。它可能不会从你想的地方开始

第二步删除
退出
行。它可能在安装完成之前退出。有些事情在写入磁盘之前完成。您也可以尝试
source~/path/catalina;同步


另外,这需要sudo权限吗?

我在运行python web应用程序时遇到了同样的问题。我想这里的问题是,当您通过RemoteExec运行命令时,一旦完成,它就会退出shell。因此,当您ssh进入机器时,它会通过一个新的shell打开,您应该在您的命令前面加上nohup前缀,我相信这应该可以实现。但这对我来说是成功的。如果您希望它在后台运行并从remote exec出来,请使用&命令。 另外,您可能希望在内联命令中添加一个“sleep 20”,这将给tomcat在provisioner退出之前的启动时间

内联=[ “一些命令”, “nohup./catalina.sh start&”, “睡眠20”,
]

我在运行python web应用程序时遇到了同样的问题。我想这里的问题是,当您通过RemoteExec运行命令时,一旦完成,它就会退出shell。因此,当您ssh进入机器时,它会通过一个新的shell打开,您应该在您的命令前面加上nohup前缀,我相信这应该可以实现。但这对我来说是成功的。如果您希望它在后台运行并从remote exec出来,请使用&命令。 另外,您可能希望在内联命令中添加一个“sleep 20”,这将给tomcat在provisioner退出之前的启动时间

内联=[ “一些命令”, “nohup./catalina.sh start&”, “睡眠20”,
]

catalina.sh是否有可执行位?也许你可以试试“sh catalina.sh start”。看来你应该给“远程执行”[link]()@Aleksei Kurepin添加参数是的,它是可执行的。之后,我可以ssh到实例中并运行它。我发布的输出显示它成功运行,Tomcat启动。“sh catalina.sh start”也不起作用。谢谢您的回复。“catalina.sh”有可执行位吗?也许你可以试试“sh catalina.sh start”。看来你应该给“远程执行”[link]()@Aleksei Kurepin添加参数是的,它是可执行的。之后,我可以ssh到实例中并运行它。我发布的输出显示它成功运行,Tomcat启动。“sh catalina.sh start”也不起作用。谢谢您的回复。我已经尝试了这两种方法(绝对路径和无出口)。另外,在调用脚本之前,我对路径进行了cd,只是没有显示该部分。我可以在同一个用户下配置实例后将其ssh到实例中,并执行确切的命令,然后它就可以工作了,因此没有权限问题。令人费解的是,我得到了Tomcat启动的输出,但它没有。您可能需要明确说明您使用的连接类型。那将是我唯一的猜测<代码>连接{type=“ssh”user=“vm user”host=“${var.puppet\u master\u hostname}”private\u key=“${file(var.vm\u user\u private\u key)}”}我已经尝试了这两种方法(绝对路径和无出口)。另外,在调用脚本之前,我对路径进行了cd,只是没有显示该部分。我可以在同一个用户下配置实例后将其ssh到实例中,并执行确切的命令,然后它就可以工作了,因此没有权限问题。令人费解的是,我得到了Tomcat启动的输出,但它没有。您可能需要明确说明您使用的连接类型。那将是我唯一的猜测<代码>连接{type=“ssh”user=“vm user”host=“${var.puppet\u master\u hostname}”private\u key=“${file(var.vm\u user\u private\u key)}”}