首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在另一个终端窗口中恢复已停止的进程

问在另一个终端窗口中恢复已停止的进程
EN

Stack Overflow用户
提问于 2012-05-24 13:18:48
回答 1查看 2.3K关注 0票数 3

我在Linux CentOS中执行了下面的C代码来创建一个进程。

代码语言:javascript
复制
#include <stdio.h>
#include <unistd.h>

int main ()
{
        int i = 0;

        while ( 1 )
        {
              printf ( "\nhello %d\n", i ++ );
              sleep ( 2 );
        }
}

我已经把它编译成hello_count了。当我在终端窗口中执行./hello_count时,输出如下所示:

代码语言:javascript
复制
hello 0
hello 1
hello 2
...

当我在另一个终端窗口中输入命令时

代码语言:javascript
复制
ps -e

此处列出了进程2956 ./hello_count。在同一个窗口中,我使用以下命令停止了该进程:

代码语言:javascript
复制
kill -s SIGSTOP 2956

当我再次输入以下命令时,

代码语言:javascript
复制
ps -e

仍会列出进程2956 ./hello_count。

然后,我输入以下命令以在同一窗口中恢复该进程。

代码语言:javascript
复制
kill -s SIGCONT 2956

但是,该进程在其执行和提供输出的前一个窗口中恢复。

是否有任何命令或方法可以在不同的终端窗口中恢复(不重新启动) pid为2956的进程?

我是说,我需要这样的输出,

代码语言:javascript
复制
hello 8
hello 9
...

在一个窗口中,而不是在我停止进程之前得到上述输出的那个窗口中。

EN

回答 1

Stack Overflow用户

发布于 2012-05-24 13:24:22

您遇到的问题是,您的进程被附加到特定的tty,并且在进程启动后切换tty通常是不可能的。请参阅此question。

请注意,您可以考虑一些hacky methods。

对于真实的命令行场景,使用screen将允许您在虚拟终端中启动命令,然后从任何其他终端连接到该终端。但这不是你的问题似乎表明你正在寻找的程序化解决方案。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10731551

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档