当前位置: 首页 > 知识库问答 >
问题:

无法让“remote exec”启动tomcat

明松
2023-03-14

在配置实例时,我使用“Remote-exec”执行一些命令,然后通过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.sh start”,效果很好。我还尝试创建一个服务,并在远程执行内联命令中运行“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.

共有2个答案

西门凯康
2023-03-14

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

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

此外,这需要sudo权限吗?

姜嘉赐
2023-03-14

我在运行python Web应用程序时也遇到了同样的问题。我想这里的问题是,当您通过Remote-exec运行命令时,它会在完成后退出shell。因此,当您ssh进入机器时,它会通过新shell打开,您应该在命令前加上nohup,我相信这应该可以解决问题。不过,我做到了。使用

inline=[“一些命令”,“nohup./catalina.sh start”

 类似资料:
  • iam使用带有kafa整数的jhipsterSpring靴 正在应用中。yml公司 云:流:默认绑定器:kafka函数:定义:memberSupplier;成员批准供应商;memberEventConsumer;memberApprovalEventConsumer绑定:memberSupplier-out-0:目标:memberEventConsumer-in-0:目标:memberApprov

  • 问题内容: 在添加异步任务之前,我已经对代码进行了一些更改,我的应用程序可以正常运行其远程服务器上的身份验证用户名和密码,但是在登录成功消息消失后​​无法启动其他活动。有人建议我现在添加一个异步任务,但是我输入正确的用户名和密码后它将停止工作。当我输入错误的用户名和密码时,其工作正常将显示错误的用户名密码消息。如果有人能够知道会出现什么错误,请帮助我。 码- 日志猫 QuestionnActivi

  • 我正在尝试将HDFS从1.2.1升级到2.6版本。但是,每当我运行start-dfs.sh-upgrade命令时,我都会得到以下错误: hduser@cluster1-nn:/usr/local/hadoop2/hadoop-2.6.0/etc_bkp/hadoop$$hadoop_new_home/sbin/start-dfs.sh-upgrade 15/05/17 12:45:58警告util

  • 所以你很想开始这个名为radiusd的程序。您已以root身份登录,在终端提示符下键入radiusd,按Enter键,您将获得以下内容: radiusd: command not found 我知道这听起来很愚蠢,但请确保使用以下命令实际安装了FreeRADIUS: locate radius 并非所有发行版都默认包含locate命令。在SUSE上,您可能首先必须通过运行以下命令来安装它:zypp

  • 我已经搜索了这个错误,并找到了许多解决方案,但我无法解决这个问题,因为我是Android的初学者 舱单在下面 安装应用程序后,它第一次工作,但当我们关闭并重新打开时,它崩溃了,不幸的是,应用程序已经关闭,你有任何想法,它将非常感谢:) 谢了!