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
文件)。最后的&
符号将程序放入后台运行。