📜  如何使用 nohup - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:38:05.298000             🧑  作者: Mango

如何使用 nohup - Shell/Bash

在 Shell/Bash 中,nohup 命令可用于在后台运行命令,即使用户注销或关闭终端也可以继续运行命令。nohup 命令的语法如下:

nohup command [arg...]

其中,command 是要运行的命令名称,arg 是传递给命令的参数。

基本用法

使用 nohup 命令的基本用法很简单。以下是一个使用 nohup 命令在后台运行脚本的示例:

nohup ./myscript.sh &

在这个示例中,./myscript.sh 是要运行的脚本文件。在命令的结尾使用 & 符号表示在后台运行。

将输出写入文件

默认情况下,nohup 命令将命令的输出写入 nohup.out 文件中。如果你想将输出写入其他文件,可以使用重定向符 >。例如:

nohup ./myscript.sh > output.log &

在这个示例中,./myscript.sh 命令的输出被重定向到 output.log 文件中。

附加输出到文件

如果你想将命令的输出追加到文件而不是覆盖它,可以使用 >> 重定向符。例如:

nohup ./myscript.sh >> output.log &

在这个示例中,./myscript.sh 命令的输出被追加到 output.log 文件中。

实时刷新输出

默认情况下,nohup 命令将命令的输出缓存起来,并在进程结束时一次性写入文件中。如果你想要实时查看命令的输出,可以使用 stdbuf 命令来禁用输出缓存。例如:

nohup stdbuf -oL ./myscript.sh >> output.log &

在这个示例中,使用 stdbuf -oL 命令禁用了缓冲,并将 ./myscript.sh 命令的输出实时写入 output.log 文件中。

查看进程状态

可以使用 pgrep 命令查看正在运行的 nohup 进程。例如:

pgrep -f "nohup ./myscript.sh"

在这个示例中,使用 pgrep 命令查找正在运行的命令 ./myscript.sh 的进程 ID。

结束进程

要结束正在运行的 nohup 进程,可以使用 kill 命令。例如:

kill <pid>

在这个示例中, 是要结束的进程的进程 ID。

结论

这就是如何使用 nohup 命令在 Shell/Bash 中在后台运行命令的介绍。使用 nohup 命令可以保证在注销或关闭终端后继续运行命令,并且可以将命令的输出重定向到文件或实时查看输出。