我想知道在bash中这两种语法的区别:
举个例子,我该运行
( &)
和( ) &
。唯一我注意到的区别是,(tty &)
会返回“不是tty”,而(tty) &
将返回当前tty名称,但为什么?举个例子,我该运行
(setsid startx &)
还是(setsid startx) &
?
X &
在没有控制终端的情况下运行 X,那么似乎(tty)&
会在没有控制终端的情况下运行子 shell,因此tty
命令也不会有控制终端。这种差异是由于后台进程是否由会话领导者启动引起的吗? - Vaughn Cato(tty)&
命令,它将无法在没有控制终端的情况下运行。你可以通过将tty
替换为sleep 60
等命令,并使用ps
进行检查来轻松测试此问题。 - Scrutinizer