nohup是Linux和Unix系统中的一个命令,其作用是在终端退出时,让进程在后台继续运行。它的全称为“no hang up”,意为“不挂起”。使用nohup命令可以避免在退出终端或关闭SSH连接后,正在运行的进程被中断。
nohup命令的基本语法如下:
nohup COMMAND [ARGS ...] [> output-file 2> error-file] &
其中,COMMAND是在后台运行的命令或脚本,ARGS是命令或脚本的参数。>符号用于将输出重定向到指定的文件中,2>符号用于将错误信息重定向到指定的文件中,&符号用于将命令放在后台运行。
例如,要在后台运行一个名为test.sh的Bash脚本,并将标准输出和标准错误输出重定向到stdout.txt和stderr.txt文件中,可以执行以下命令:
nohup bash test.sh > stdout.txt 2> stderr.txt &
执行上述命令后,即使退出终端或关闭终端窗口,test.sh脚本仍然会在后台运行,并将输出和错误信息分别写入stdout.txt和stderr.txt文件中。
另外,如果使用nohup命令提交作业,那么在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中,除非另外指定了输出文件。例如:
nohup command > myout.file 2>&1 &
在上面的例子中,输出被重定向到myout.file文件中。使用jobs命令可以查看任务,使用fg %n命令可以关闭任务。