当会话没有控制终端时,“前台进程组”和“后台进程组”的概念是否适用?

当会话没有控制终端时,“前台进程组”和“后台进程组”的概念是否适用?

根据我的理解,与控制终端的会话具有“前台进程组”和“后台进程组”。

但是如果我们有一个没有控制终端的会话,这样的会话是否仍然有“前台进程组”和“后台进程组”?

答案1

“前台”进程组一般是为终端定义的。没有终端,何来前台或后台?

例如,进程组上的 POSIX

终端可能有一个与之关联的前台进程组。......

如果一个进程位于其控制终端的前台进程组中...

...前台进程组中的所有进程,其终端是控制终端...

前台进程组的一切都在终端的上下文中。

答案2

进程组总是由一个主进程(例如 SSH 会话)管理。一旦主进程关闭,所有子进程(包括前台和后台任务)也会被终止。

有一些方法可以将进程从启动位置分离出来,例如使用nohup。然后此进程将处于独立状态,如果您需要将此类进程重新带回前台,则需要使用某些工具,例如reptyr

来源 :https://unix.stackexchange.com/questions/49106/how-to-recover-a-backgrounded-job-from-a-previous-shell

相关内容