Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/api/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java启动bash脚本问题_Java_Bash - Fatal编程技术网

Java启动bash脚本问题

Java启动bash脚本问题,java,bash,Java,Bash,我已经看过很多如何运行bash脚本的例子,我尝试了几个,由于某种原因,我的脚本在某些功能上失败了 我有一个脚本start\u update\u set\u up,由launcher运行: #!/bin/bash DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" echo "Script directory:"$DIR nohup bash -c $DIR/start_update_set_up > $DIR/l

我已经看过很多如何运行bash脚本的例子,我尝试了几个,由于某种原因,我的脚本在某些功能上失败了

我有一个脚本
start\u update\u set\u up
,由
launcher
运行:

#!/bin/bash

DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
echo "Script directory:"$DIR
nohup bash -c $DIR/start_update_set_up > $DIR/logs/start_update_set_up.log &
echo "Laucher finish execution"
如果我直接从bash运行
launcher
,If工作得非常好。但如果我尝试从Java运行它,sleep和curl函数就会失败。此外,Java在主脚本完成执行时等待某种原因,这是我不想要的,这就是我实现launcher的原因,也是我想通过
nohup
将其与Java分离的原因

我试过:apache executor:

executor.execute(命令行,新的defaultexecutesulthandler())
命令行是我的启动器

和运行时

Runtime runtime = Runtime.getRuntime(); 
try { Process process = runtime.exec("./launcher"); } catch (IOException e) {
   logger.error("ExecuteException at running update script");
   e.printStackTrace(); 
}

我错过了什么?如何将bash与Java分离?

目前我无法测试它,但我认为脚本应该以exit语句结束,这可能就是Java代码等待的原因


至于sleep和curl函数失败,如果您不显示它们,我们将无法帮助您。

sleep工作,如果使用
processp=Runtime.getRuntime().exec(新字符串[]{“bash”,“-c”,“/launcher”})。至于curl,如果从bash运行,则有输出。如果fromJava-result为空。让我试试一些公共主机,我会发布结果。没有输出。示例:
curlhttp://google.com/
。它处于启动\更新\设置\转发到文件也不起作用。文件已创建,但为空。