`nohup` 中的 & 符号代表什么意思?

`nohup` 中的 & 符号代表什么意思?

我见过很多例子,其中 a&跟在命令字符串的末尾,但我似乎找不到它的作用的解释。它甚至不在nohupman页面中。这是 shell 的问题吗?

无论使用&与否,我发现任何运行的进程nohup似乎都对任何挂断信号表现出免疫力。

答案1

来自bash 手册页

如果命令以控制操作符 & 结束,则 shell 将在子 shell 中在后台执行该命令。shell 不会等待命令完成,返回状态为 0。

所以是的,它是 shell 的东西,可以与任何命令一起使用。它本质上会立即将控制权返回给您,并允许命令在后台完成。这几乎总是与一起使用,nohup因为您通常希望在启动命令后退出 shell。

答案2

使用与号 (&) 将在子进程(当前 bash 会话的子进程)中运行该命令。但是,当您退出会话时,所有子进程都将被终止。

使用 nohup + 和号 (&) 将执行相同的操作,不同之处在于,当会话结束时,子进程的父进程将更改为“1”,即“init”进程,从而防止子进程被终止。

答案3

是的,它是一个 shell 东西——它在后台运行命令,因此您不必等待当前命令返回后再发出更多命令。

相关内容