nohup 它用于在后台运行程序,并防止程序在终端关闭或用户注销时被终止。nohup 是 "no hangup" 的缩写,表示不挂断,即使终端关闭或者用户退出,程序仍然继续运行。
基本用途
nohup 基本语法是:
nohup command [arguments] &
command:要执行的命令。
[arguments]:命令的参数。
&:表示将命令放入后台执行。
输出重定向
默认情况下,nohup 会将命令的标准输出(stdout)和标准错误输出(stderr)重定向到一个名为 nohup.out 的文件中。
如果没有指定输出文件,所有的输出都会被写入到 nohup.out 中。如果希望输出到其他文件,可以显式地重定向输出,
例如:
nohup command > output.log 2>&1 &
其中:
> output.log 将标准输出重定向到 output.log 文件。
2>&1 将标准错误重定向到标准输出,从而所有输出都会写入到同一个文件。
完整示例:
# 执行命令并向指定文件输出日志
nohup bash long_task.sh > output.log 2>&1 &
# 打开进程 并以后台运行
nohup python3 -m http.server 8000 &
注意事项
nohup 不能防止程序因内存不足、硬件故障等其他因素而停止运行。它只防止因终端关闭或用户注销而终止