gpt4 book ai didi

java - 从 java 内部启动一个 bash 脚本,它在 jvm 退出后继续存在

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:28:49 28 4
gpt4 key购买 nike

我正在尝试从 java 内部运行一个 bash 脚本,该脚本将在 JVM 退出后继续存在。我目前的尝试看起来像这样:

String[] linCmd = {"/bin/bash", "-c", "\"set +m; shopt -u huponexit; nohup "
+ "myScript.sh 2>&1 > /dev/null &\""};
pb = new ProcessBuilder(linCmd);
//Other stuff to monitor and start pb

但我没有看到 myScript.sh 实际启动(在 top 或 ps 中)。顺便说一句,单独的 bash shell 的原因是因为我需要 set +m 并且不想用它破坏原始的。此外,nohupshopt -u huponexit 可能是多余的,但我已经单独尝试过,但似乎无法正常工作。

有什么想法吗?

最佳答案

尝试不在“set +m ... &”周围添加额外的引号 通过将整个内容作为该数组的第三个元素,您告诉 java 这整个内容是第三个参数。引号应该是不需要的,我认为它们可能会干扰。

关于java - 从 java 内部启动一个 bash 脚本,它在 jvm 退出后继续存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6797713/

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