我见过很多的例子,其中一个&是在一个命令string的后面,但是我似乎无法find它所做的解释。 这甚至在nohup的man页上都没有。 这是一个壳的东西?
无论是否使用,我发现任何运行nohup进程似乎都performance出对任何挂断信号的免疫力。
从bash的manpage :
如果一个命令被控制操作符&终止,那么shell在一个子shell中在后台执行命令。 shell不会等待命令完成,返回状态为0。
所以是的,这是一个shell的东西,可以用于任何命令。 它基本上将控制权立即返回给您,并允许命令在后台完成。 这通常与nohup使用,因为您通常在启动命令后要退出shell。
使用和号(&)将在subprocess中运行该命令(subprocess到当前的bash进程)。 但是,当您退出会话时,所有subprocess都将被终止。
使用nohup +&符号(&)将做同样的事情,除了当会话结束时,subprocess的父进程将被更改为“1”,即“init”进程,从而保护孩子不被杀害。
是的,这是一个shell的东西 – 它在后台运行命令,所以你不必等待当前的命令返回,然后再发出更多的命令。