如何将脚本输出重定向到文本文件并在注销后继续运行

如何将脚本输出重定向到文本文件并在注销后继续运行

以下两者有何区别:

nohup bin/admin/release.sh > /users/john/release_output 2>&1 &

bin/admin/release.sh > /users/john/release_output &

我想运行 release.sh 并在后台运行它(即使我关闭 shell 窗口它也应该继续工作),我还想将输出保存到我​​的主目录 (/users/john/) 中的 release_output

答案1

  • trailing&在后台运行该进程。这样做的重要方面是,您无需等待脚本完成即可获得命令提示符,因此无需等待即可发出注销命令。
  • 2>&1确保当 STDERR 的目标(终端/tty)断开连接时,进程不会收到“管道断开”信号(但我认为nohup可以解决这个问题)。如果愿意,您可以将 STDERR 重定向到单独的文件。
  • nohup确保在关闭相关终端会话时不会向进程发送 HUP(挂断)信号。

如果您阅读了手册页,nohup您就会发现它是专门为您想要做的事情而设计的。

答案2

如果您想在后台运行它并且即使用户注销也能继续运行,那么它就nohup可以满足您的需求。

相关内容