nohup不会将任何内容写入文件

huangapple 未分类评论42阅读模式
英文:

nohup doesn't write anything to file

问题

我有一个Java程序,它执行以下Shell脚本来重新启动自己。

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

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

我通过以下代码启动脚本:

  1. ProcessBuilder processBuilder = new ProcessBuilder();
  2. processBuilder.command("/bin/sh", "/home/my-dir/start.sh");
  3. try {
  4. processBuilder.start();
  5. logger.info("成功启动");
  6. } catch (IOException e) {
  7. e.printStackTrace();
  8. }
英文:

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

  1. sleep 5
  2. 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

  1. ProcessBuilder processBuilder = new ProcessBuilder();
  2. processBuilder.command("/bin/sh", "/home/my-dir/start.sh");
  3. try {
  4. processBuilder.start();
  5. logger.info("Successfully started");
  6. } catch (IOException e) {
  7. e.printStackTrace();
  8. }

答案1

得分: 0

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

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

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

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

huangapple
  • 本文由 发表于 2020年4月5日 04:08:06
  • 转载请务必保留本文链接:https://java.coder-hub.com/61034126.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定