在Linux中,nohup
命令和&
符号都用于在后台运行程序,但它们的用途和工作方式有所不同。
nohup
命令:
nohup
(no hang-up的缩写)命令允许用户在不挂断终端的情况下运行程序。当用户关闭终端或注销时,通常会发送一个SIGHUP信号给所有与该终端关联的进程,导致它们终止。使用nohup
命令可以让程序忽略这个信号,从而在用户退出登录后继续运行。nohup
通常与输出重定向结合使用,以便将程序的输出保存到文件中,而不是显示在终端上。例如,运行一个名为myprogram
的程序,并将输出保存到output.log
文件中,可以使用以下命令:
nohup myprogram > output.log 2>&1 &
&
符号:
&
符号用于将程序放入后台运行。当你在命令末尾添加&
符号时,程序会在后台执行,而不会占用终端。这意味着你可以继续在终端中执行其他命令,而不必等待后台程序完成。然而,如果关闭终端或注销,后台程序通常会被终止,除非它们已经被设置为忽略SIGHUP信号。例如,要在后台运行myprogram
,可以使用以下命令:
myprogram &
总结一下,nohup
命令主要用于在关闭终端后保持程序运行,而&
符号用于将程序放入后台运行。通常,如果你希望程序在你退出登录后仍然继续运行,你会结合使用nohup
和&
符号。