Shell 脚本中 nohup 命令的作用是什么?

推荐答案

nohup 命令用于在后台运行程序,并且忽略挂起信号(SIGHUP)。即使终端关闭,使用 nohup 启动的程序也会继续运行。通常与 & 结合使用,将程序放入后台执行。

本题详细解读

1. nohup 的基本用法

nohup 命令的基本语法如下:

  • command:要执行的命令或脚本。
  • arguments:传递给命令的参数。
  • &:将命令放入后台执行。

2. nohup 的输出

默认情况下,nohup 会将命令的输出重定向到当前目录下的 nohup.out 文件中。如果当前目录不可写,则会重定向到 ~/nohup.out

你可以通过重定向输出到其他文件来改变默认行为:

  • > output.log:将标准输出重定向到 output.log 文件。
  • 2>&1:将标准错误输出重定向到标准输出,即也写入 output.log

3. nohup 的常见用途

  • 长时间运行的任务:当你需要运行一个长时间的任务,并且不希望它因为终端关闭而中断时,可以使用 nohup
  • 后台任务:当你希望将任务放入后台执行,并且不需要与终端交互时,可以使用 nohup

4. 示例

假设你有一个脚本 long_running_script.sh,你希望它在后台运行,并且即使关闭终端也不会中断:

这个命令会将 long_running_script.sh 放入后台执行,并将输出和错误信息都写入 script_output.log 文件中。

纠错
反馈