Man*_*dan 3 process signals jobs background-process
我知道ctrl+z将进程从前台更改为后台(如暂停)SIGTSTP。我可以通过fg或bg根据需要重新运行后台挂起的进程。
问题
bg发出什么信号fg?不确定两者发送的内容是否相同或不同。
我确实意识到没有既非man fg也非man bg。好吧,没有关于通过fg --help和 的信号的信息bg --help
小智 6
bg并且fg不发送信号。它们是改变 shell 行为方式的内置函数。
其工作原理是用户的输入必须到达其预期目的地。当您运行时bg (job),您告诉 shell 您不再希望该进程从控制台读取或写入,只需在其中运行即可。
因此,从那时起,当您写入控制台时,shell会发送SIGTTIN或SIGTTOU信号来分别告诉该进程不允许读取或写入。
要回答您的后续问题:当您有一个在前台运行的进程想要移动到后台时,您可以点击将信号Ctrl + Z发送SIGTSTP到正在运行的作业(这是交互式停止信号)。然后运行“bg (job #)”,它告诉 shell“我希望这个作业移到后台”。
然后,shell 会将该作业标记为内存中的后台作业,并相应地对待它,SIGCONT如果发现它当前已停止,则发送该作业。该bg命令本身并不发送信号,但 shell 可能会发送信号SIGCONT作为对 的反应bg。