nohup
命令和 &
符号在 Linux 和 Unix 系统中都用于在后台运行程序,但它们的用途和工作方式有所不同。
nohup 命令
nohup
是 “no hang up” 的缩写,它的主要作用是让进程忽略挂起(SIGHUP)信号。当用户退出终端或关闭会话时,通常会发送 SIGHUP 信号给所有与该终端关联的进程,导致它们终止。使用 nohup
可以确保即使终端关闭,进程也会继续运行。
基本用法如下:
nohup command &
这里的 command
是你想要在后台运行的命令。&
符号将命令放入后台执行,而 nohup
确保进程不会因为终端关闭而终止。
nohup
还会将命令的输出重定向到一个名为 nohup.out
的文件中,除非指定了其他输出文件。
& 符号
&
符号用于将命令放入后台执行。当你在一个命令后面加上 &
并按下回车键时,该命令会在后台运行,而你将立即得到命令提示符,可以继续执行其他命令。
例如:
command &
这会让 command
在后台运行,但是如果你关闭终端,该进程通常会被终止,除非它已经被 nohup
或其他机制保护起来。
总结
nohup
用于确保进程在用户退出登录后仍然运行,并且忽略挂起信号。&
仅仅是将命令放入后台执行,不提供对挂起信号的防护。
在实际使用中,如果你想要一个进程在后台持续运行,不受终端关闭的影响,你应该结合使用 nohup
和 &
:
nohup command &
这样,即使你关闭了终端,command
也会继续运行,并且其输出会被记录在 nohup.out
文件中。