nohup(no hang-up的缩写)是一个在Linux和Unix系统中常用的命令,用于在后台运行程序,使其在用户退出登录或关闭终端后仍然继续运行。这对于长时间运行的任务或需要持续运行的服务非常有用。
nohup命令的工作原理如下:
当你使用nohup命令启动一个程序时,它会忽略所有挂起(SIGHUP)信号。这意味着即使你关闭终端或断开与服务器的连接,程序也会继续运行。
nohup命令会将程序的输出重定向到一个名为nohup.out的文件中,除非你指定了其他输出文件。这样,你可以随时查看程序的输出,而不用担心丢失信息。
如果你想在后台运行程序并使其在退出登录后继续运行,可以使用&符号将程序放入后台。例如:nohup your_command &。
你还可以使用disown命令将已启动的后台进程从当前shell会话中分离,使其在退出登录后仍然继续运行。
一个典型的nohup命令示例:
nohup your_command > output.log 2>&1 &
在这个示例中,your_command是你想要运行的程序。>符号将标准输出重定向到output.log文件,2>&1表示将标准错误输出重定向到标准输出(即output.log文件)。最后的&符号将程序放入后台运行。