我应该发送哪个信号给后台进程以使其移动到前台?SIGTTIN,SIGTOU还是其他信号?
信号并不直接控制作业是在前台还是后台运行。通常情况下,作业是由一个shell控制的。
例如,在bash
中执行以下命令:
pax> sleep 3600 &
pax> jobs
你将看到如下输出:
[1]+ Running sleep 3600 &
然后,您可以使用以下命令将该作业带回前台:
pax> fg %1
sleep 3600
(and the terminal waits).SIGSTOP
),并将其置于后台,但唯一可以改变状态的信号是SIGCONT
(继续执行):pax> fg %1
sleep 3600
^Z
[1]+ Stopped sleep 3600
pax> jobs
[1]+ Stopped sleep 3600
pax> kill -CONT %1
pax> jobs
[1]+ Running sleep 3600 &
这将指示进程重新开始运行,但它不会使其回到前台。为此,您需要使用fg
命令。
最好将信号(影响进程)和前/后台(影响启动进程的shell,通过确定是否等待该进程等其他因素)分开考虑。
gurudoglu。我认为您的请求的响应在这里:
据我所知,在任何操作系统中都没有办法使用信号将进程置于前台。
我认为你只能使用fg
将进程置于前台。
前台只在控制台的上下文中相关,信号无法告诉进程应该将哪个控制台置于前台...
假设您正在Unix上,并从shell启动了进程,您可以键入以下内容