【发布时间】:2018-08-13 03:27:04
【问题描述】:
我在linux机器上有一个用java写的rest服务。
我正在使用:
p = Runtime.getRuntime().exec(cmmnd);
或
ProcessBuilder pb = new ProcessBuilder(cmmnd).inheritIO();
p = pb.start();
p.waitFor();
我可以执行诸如mkdir、touch 之类的命令...
但是当我尝试运行 sh 文件时没有任何反应(例如:sudo sh /home/mydir/myfile.sh)
是权限问题吗?我该如何解决?
【问题讨论】:
-
就个人而言,我认为这是一个坏主意。我强烈建议不要这样做。这不是 REST 服务的用途。
-
我完全不同意这种解决方案。休息服务不打算这样做。 Java 是一种独立于平台的语言,但该代码只能在 Linux 上运行。无论如何,检查yopur文件的执行(X)权限:chmod +X myfile.sh。
-
谢谢,我在那个文件上有 777。
-
我希望该服务启动或停止另一个服务
-
你的脚本运行了吗?在脚本的最开始添加一行以创建文件(提供绝对路径,以便您知道在哪里查找它),并检查文件是否已创建?此外,如果这是在 try/catch 中,您能否确保在捕获异常时打印异常?
标签: java linux shell rest process