nohup不会向文件中写入任何内容

问题描述 投票:0回答:1

我有一个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();
}
java linux nohup
1个回答
0
投票

除非您将nohup的值导出到脚本的环境中(例如,导出nohup = / usr / bin / nohup),否则$ nohup将评估为空字符串-因此您的命令

nohup根本没有被调用。您可能想要

nohup java -jar MyJar.jar & tail -f nohup.out

最好使输出文件明确:

$ nohup java -jar MyJar.jar > nohup.out & tail -f nohup.out
© www.soinside.com 2019 - 2024. All rights reserved.