1、作用
nohup
命令的核心功能是让进程忽略挂起信号 (SIGHUP
),使得在shell
会话中启动的进程,在会话关闭时不会终止。
如果你使用nohup
的命令启动进程,进程的标准输出会被重定向到当前目录的nohup.out
文件,如果当前目录的nohup.out
文件不可写,输出重定向到$HOME/nohup.out
文件中,除非你另行指定了输出文件。
注:shell
会话关闭后,终止的进程既包括在会话前台的进程,也包括在会话后台的进程。(没有使用nohup
情况下)
2、命令使用格式
nohup COMMAND [options]
COMMAND
:要执行的命令。options
:参数(可选)
3、常用参数说明
nohup
本身没有复杂的参数,但它通常与其他命令组合使用。你可以结合使用以下命令参数来增强 nohup
的功能:
&
: 将命令放到后台运行。> file
:将标准输出重定向到指定文件。2>&1
:将标准错误输出重定向到标准输出。
4、示例
假设你有一个名为long_script.sh
的脚本,它需要几个小时才能完成。你可以使用nohup
命令来确保它在你关闭shell
会话后依然运行。
nohup ./long_script.sh &
&
表示后台运行该命令。nohup
会将输出重定向到当前目录下的nohup.out
文件。
可以将输出定向到指定的文件,而不是默认的nohup.out
:
nohup ./long_script.sh > output.log 2>&1 &
> output.log
:将标准输出重定向到output.log
文件。2>&1
:将错误输出重定向标准输出,又因为标准输出已重定向到output.log
文件,所以相当于错误输出重定向到output.log
文件。