Search code examples
javalinuxnohup

nohup doesn't write anything to file


i have a Java program which executes the following shell script to restart it self.

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

If i run the script from a terminal, it just works as expected. However if the Java Program executes the script, the program starts normally but nothing gets written to the output file.

I start the script via the following code

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();
}

Solution

  • Following command worked for me. It writes all the output to the specified file.

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