nohup
(no hang-up的缩写)是一个在Unix和Linux系统中用于运行命令的实用程序,它可以使命令在用户退出登录后继续运行
nohup
命令的主要作用是忽略挂起(SIGHUP)信号。当用户关闭终端或注销时,系统会向所有与该终端关联的进程发送SIGHUP信号,通知它们终止运行。然而,在某些情况下,我们可能希望某些进程在用户退出登录后继续运行,例如长时间运行的任务、服务器进程等。这时,我们可以使用nohup
命令来实现这一目标。
使用nohup
命令的基本语法如下:
nohup command-to-run &
其中,command-to-run
是要运行的命令,&
表示将命令放入后台运行。
例如,如果你想要在后台运行一个名为long-running-task.sh
的脚本,可以使用以下命令:
nohup ./long-running-task.sh &
运行此命令后,nohup
会创建一个名为nohup.out
的文件,用于存储命令的输出。你可以通过重定向输出到其他文件来更改此行为,例如:
nohup ./long-running-task.sh > output.log 2>&1 &
这将把标准输出和标准错误都重定向到output.log
文件中。
总之,nohup
命令可以帮助你在用户退出登录后继续运行长时间运行的任务,确保任务不会因为终端关闭而中断。