我正在尝试从 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 实际启动(在顶部或 ps 中)。顺便说一句,单独的 bash shell 的原因是因为我需要set +m
并且不想用它来破坏原始文件。并且nohup
andshopt -u huponexit
可能是多余的,但我已经尝试过,没有单独使用它,似乎无法让它正常工作。
有任何想法吗?