nohup命令在Linux系统中用于在用户退出系统后继续运行指定的程序或脚本。它的主要作用是防止进程因用户退出而终止,常用于后台运行需要长时间执行的程序。
忽略挂起信号(SIGHUP):
nohup命令会使进程忽略这个信号,从而在用户退出后继续运行。重定向标准输出和错误输出:
nohup会将程序的标准输出和错误输出重定向到一个名为nohup.out的文件中。后台运行:
&符号,可以使程序在后台运行,不会占用终端。nohup command [arguments] &
command 是要运行的程序或脚本。[arguments] 是传递给程序的参数。& 符号将程序放入后台运行。假设你想在后台运行一个名为my_script.sh的脚本,并且希望即使你退出登录,脚本也能继续运行:
nohup ./my_script.sh &
运行上述命令后,my_script.sh会在后台启动,并且输出会被重定向到当前目录下的nohup.out文件中。
如果你想将输出重定向到特定的文件,可以这样做:
nohup ./my_script.sh > output.log 2>&1 &
这里,> 将标准输出重定向到output.log,2>&1 将标准错误输出重定向到标准输出,从而两者都会被写入output.log文件。
nohup命令时,最好检查输出文件的大小,以防止日志文件过大。nohup可能会导致问题,因为它不会分配终端。disown命令来完全从当前shell会话中分离进程。总之,nohup是一个非常有用的工具,特别适用于需要在后台长时间运行的任务。