gpt4 book ai didi

Java启动bash脚本问题

转载 作者:行者123 更新时间:2023-12-01 12:30:58 29 4
gpt4 key购买 nike

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

我有一个由 launcher 运行的脚本 start_update_set_up:

#!/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 - 如果工作完美。但如果我尝试从 Java 运行它, sleep 和 curl 功能就会失败。此外,当我的主脚本完成执行时,Java 由于某种原因等待,这是我不希望的,这就是我实现启动器的原因,这就是为什么我想通过 nohup 将其与 Java 分离的原因 nohup

我尝试过:apache执行器:

executor.execute(commandLine, new DefaultExecuteResultHandler());其中命令行是我的启动器。

和运行时。

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功能失败,如果您不显示,我们无法帮助您。

关于Java启动bash脚本问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25922977/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com