nohup
命令和 &
符号在 Linux 中都用于在后台运行程序,但它们的用途和工作方式有所不同。
nohup
是 “no hang up” 的缩写,它的作用是让进程忽略挂起(SIGHUP)信号。通常,当用户退出登录或者关闭终端时,所有在该终端下启动的进程都会收到 SIGHUP 信号并终止。使用 nohup
可以让进程在用户退出登录后继续运行。
基本用法是:
nohup command &
这里的 command
是你想要在后台运行的命令。&
符号是将命令放入后台运行,而 nohup
确保即使终端关闭,命令也会继续运行。
nohup
还会默认将命令的输出重定向到一个名为 nohup.out
的文件中,除非指定了其他输出文件。
&
符号用于将命令放入后台运行。当你在命令的末尾加上 &
,shell 不会等待该命令执行完毕,而是立即返回并允许用户继续输入其他命令。
例如:
command &
这会让 command
在后台运行,但不会忽略 SIGHUP 信号。如果用户退出登录或关闭终端,该命令通常会被终止。
通常,你会看到 nohup
和 &
一起使用,以确保命令在后台运行并且不受终端关闭的影响:
nohup command &
这样,即使用户退出登录或关闭终端,command
也会继续运行,并且输出会被重定向到 nohup.out
文件中。
nohup
:用于忽略挂起信号,使进程在用户退出登录后继续运行。&
:用于将命令放入后台运行,但不提供对挂起信号的防护。nohup &
:结合了两者的功能,使命令在后台运行且不受终端关闭的影响。希望这些解释能帮助你理解 nohup
命令和 &
符号在 Linux 中的不同用途。