`nohup` 是一个在 Unix 和 Linux 系统中的命令,用于运行一个命令或脚本,并忽略挂断(hangup)信号。这意味着即使你退出了终端或关闭了会话,该命令或脚本仍然会继续在后台运行。这对于长时间运行的任务或需要保持运行的后台进程非常有用。
下面是 `nohup` 命令的详细解释:
### 语法:
```bash
nohup command > /dev/null 2>&1 &
```
### 参数解释:
* `command`:你想要运行的命令或脚本。
* `> /dev/null`:将命令的标准输出重定向到 `/dev/null`,这意味着你不会看到任何输出。如果你想保存输出到文件,可以重定向到某个文件,例如 `> output.log`。
* `2>&1`:将标准错误(文件描述符 2)重定向到标准输出(文件描述符 1)。这样,所有的输出(包括错误)都会被重定向到同一地方。
* `&`:将命令放到后台运行。
### 示例:
假设你想在后台运行一个名为 `myscript.sh` 的脚本,即使你关闭了终端也让它继续运行,你可以这样做:
```bash
nohup ./myscript.sh > myscript.out 2>&1 &
```
在这个例子中:
* `./myscript.sh` 是你想要运行的脚本。
* `> myscript.out` 将脚本的输出保存到 `myscript.out` 文件中。
* `2>&1` 确保标准错误也被重定向到同一个文件。
* `&` 将脚本放到后台运行。
运行上述命令后,你会得到一个输出文件,通常是一个名为 `nohup.out` 的文件,它包含了 `nohup` 命令的输出。如果你不希望看到这个输出,可以像上面那样重定向到 `/dev/null`。
总之,`nohup` 命令是一个非常有用的工具,允许你在后台运行命令或脚本,即使你退出了终端或关闭了会话,这些命令或脚本也会继续运行。