`nohup`(no hang up)是一个用于在Linux和Unix系统中运行命令的工具。它可以让启动的程序在用户退出登录会话后仍然继续运行。通常,当您从终端启动一个程序或脚本时,如果关闭了该终端或者网络连接中断导致会话终止,那么这个程序也会随之停止运行。这是因为终端发送了一个SIGHUP(signal hang up)信号给所有子进程,告诉它们会话已经结束,应该停止运行。
使用`nohup`命令启动进程可以避免这种情况发生,因为`nohup`会让程序忽略SIGHUP信号。这意味着即使您断开了与服务器的连接,或者关闭了启动程序的终端窗口,程序依然会在后台持续运行,不会受到影响。
此外,使用`nohup`命令启动的进程,其标准输出和标准错误会被重定向到一个名为`nohup.out`的文件中(除非指定了其他输出文件),这样可以在稍后查看程序的输出信息,而不会因为终端的关闭而丢失这些信息。
使用方法很简单,只需在要执行的命令前加上`nohup`即可,例如:
nohup ./my_program &
这里,`&`符号表示将命令放入后台执行,这样您可以立即获得提示符,继续进行其他操作。