bg和fg发送什么信号?

bg和fg发送什么信号?

我知道ctrl+z改变了一个过程前景背景- 作为暂停- 通过SIGTSTP。我可以通过fgbg根据需要重新运行后台挂起的进程。

问题

  • bg发出什么信号fg

不确定两者发送的内容是否相同或不同。

我确实意识到没有既非man fg也非man bg。好吧,没有关于通过fg --help和的信号的信息bg --help

答案1

bg并且fg不发送信号。它们是改变 shell 行为方式的内置函数。

其工作原理是用户的输入必须到达其预期目的地。当您运行时bg (job),您告诉 shell 您不再希望该进程从控制台读取或写入,只需在其中运行即可。

因此,从那时起,当您写入控制台时,发送SIGTTINSIGTTOU信号分别告诉该进程不允许读取或写入。

要回答您的后续问题:当您有一个在前台运行的进程想要移动到后台时,您可以点击将信号Ctrl + Z发送SIGTSTP到正在运行的作业(这是交互式停止信号)。然后运行“bg (job #)”,它告诉 shell“我希望这个作业移到后台”。

然后,shell 会将该作业标记为内存中的后台作业,并相应地处理它,SIGCONT如果发现它当前已停止,则发送该作业。该bg命令本身并不发送信号,但 shell 可能会发送信号SIGCONT作为对 的反应bg

相关内容