我应该将哪个信号发送到后台进程以将其移至前台? SIGTTIN,SIGTOU或......?
答案 0 :(得分:16)
这不是直接控制作业是前景还是背景的信号。这些工作在shell(通常)的控制之下。
例如,在bash
下,执行:
pax> sleep 3600 &
pax> jobs
您将看到如下输出:
[1]+ Running sleep 3600 &
然后,您可以使用以下命令将该作业恢复到前台:
pax> fg %1
sleep 3600
(终端等待)。
使用 CTRL Z 向进程(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)。
答案 1 :(得分:7)
gurudoglu。我认为您的请求的回复在这里:
答案 2 :(得分:2)
没有办法(在我所知道的任何操作系统中)使用信号将进程带到前台。
我相信您只能使用fg
Foreground仅与控制台的上下文相关,并且信号无法告诉进程前台的控制台是什么...
答案 3 :(得分:1)
假设你在Unix上并从shell启动了这个过程,你可以输入以下内容