导读 `nohup` 是 "no hang up" 的缩写,是一个在 Unix 和 Linux 系统中的命令,用于运行一个命令或脚本,并使其在关闭终端或会话后继续...
`nohup` 是 "no hang up" 的缩写,是一个在 Unix 和 Linux 系统中的命令,用于运行一个命令或脚本,并使其在关闭终端或会话后继续运行。这对于长时间运行的进程特别有用,例如后台下载文件或运行长时间的计算任务。
当你使用 `nohup` 命令运行一个程序时,该程序会忽略挂断(hangup)信号,这样即使终端会话关闭,程序仍然会在后台继续运行。这对于用户在终端开启长时间运行的任务但又不希望被会话终止的场景非常有帮助。
基本的语法是:
```bash
nohup command > /dev/null 2>&1 &
```
这里的关键部分是:
* `command` 是你想运行的命令或脚本。
* `> /dev/null` 是将命令的输出重定向到 `/dev/null`,意味着你不会看到任何输出。如果你希望看到输出,你可以将输出重定向到一个文件或保留为空。
* `2>&1` 是将标准错误(文件描述符 2)重定向到标准输出(文件描述符 1),这样所有的输出(包括错误)都会被重定向到同一个地方。
* `&` 在命令的末尾表示该命令将在后台运行。
例如,如果你想在后台运行一个名为 `myscript.sh` 的脚本,可以使用以下命令:
```bash
nohup ./myscript.sh > myscript.out 2>&1 &
```
这将在后台运行 `myscript.sh` 并将其输出重定向到 `myscript.out` 文件。即使你关闭了终端会话,脚本仍然会继续运行。