Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想知道这两种语法在 bash:( &)和( ) &.
( &)
( ) &
我注意到的唯一区别是,(tty &)将返回“不是 tty”,而(tty) &将返回当前的 tty 名称,但为什么呢?
(tty &)
(tty) &
举个例子,我应该运行(setsid startx &)还是(setsid startx) &?
(setsid startx &)
(setsid startx) &
如果是
启动了一个子shell,它在没有作业控制和终端的情况下在后台启动另一个tty进程,因此出现“不是 tty”错误。tty进程与 PPID 1分离
tty
子shell 启动并在后台运行。此后台shell 启动一个tty进程,在 tty 完成并向终端报告后,子 shell 在后台完成。
--
tty是一个简单的命令。特定命令(如startx)是否需要( ... &)构造才能与父进程分离/拒绝取决于命令本身。进程有多种方式依次启动子进程并将其分离,因此命令可能不需要它。
startx
( ... &)