nohup 不向文件写入任何内容

nohup doesn't write anything to file

我有一个 Java 程序,它执行以下 shell 脚本以自行重启。

sleep 5
nohup java -jar /home/my-dir/MyJar.jar &

如果我 运行 来自终端的脚本,它会按预期工作。但是,如果 Java 程序执行脚本,程序会正常启动,但不会将任何内容写入输出文件。

我通过以下代码启动脚本

ProcessBuilder processBuilder = new ProcessBuilder();
processBuilder.command("/bin/sh", "/home/my-dir/start.sh");
try {
    processBuilder.start();
    logger.info("Successfully started");
} catch (IOException e) {
    e.printStackTrace();
}

以下命令对我有用。它将所有输出写入指定文件。

nohup java -jar /home/my-dir/MyJar.jar > /home/my-dir/log.txt & tail -f /home/my-dir/log.txt &