【问题标题】:Execute shell script from spring web application deployed on cloudfoundry从部署在 cloudfoundry 上的 Spring Web 应用程序执行 shell 脚本
【发布时间】:2012-07-06 03:21:30
【问题描述】:

我正在尝试从部署在 cloudfoundry 上的 Spring Web 应用程序调用 Btrace 脚本。

执行命令为/var/vcap/data/dea/apps/petclinic-0-fef4b0e052097a0cd2bedb8018c28dcd/tomcat/webapps/ROOT/WEB-INF/classes/bin/btrace.sh 532 /var/vcap/data/dea /apps/petclinic-0-fef4b0e052097a0cd2bedb8018c28dcd/tomcat/webapps/ROOT/WEB-INF/classes/bin/DatabaseQueries.java

但我收到此错误:

java.io.IOException:无法运行程序“/var/vcap/data/dea/apps/petclinic-0-fef4b0e052097a0cd2bedb8018c28dcd/tomcat/webapps/ROOT/WEB-INF/classes/bin/btrace.sh”:java .io.IOException: error=13, Permission denied

我推送具有完全脚本权限的应用程序,但错误仍然存​​在。

我们如何从 Cloudfoundry 上的 Spring Web 应用程序执行 shell/bat 脚本

【问题讨论】:

    标签: shell cloud-foundry btrace


    【解决方案1】:

    推送到 Cloud Foundry 的文件的权限由文件所有者读取/写入。在运行之前,您需要使脚本在您的应用中可执行:

    String btracePath = System.getenv().get("HOME") + "/tomcat/webapps/ROOT/WEB-INF/classes/bin/btrace.sh";
    String cmd = "chmod +x " + btracePath;
    Runtime run = Runtime.getRuntime();
    Process pr = run.exec(cmd);
    try {
        pr.waitFor();
    } catch (InterruptedException ex) {
        ex.printStackTrace();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-07-05
      • 2016-08-14
      • 2014-06-09
      • 2011-05-21
      • 1970-01-01
      • 2015-06-19
      相关资源
      最近更新 更多