【问题标题】:Process gets killed after xterm terminatesxterm 终止后进程被杀死
【发布时间】:2014-07-15 22:15:33
【问题描述】:

我想在 C++ 中运行 xterm 终端来创建一个像这样的 Linux 进程

system("xterm -e adb start-server")

创建了 adb 进程,但在该命令之后它被杀死。我试图通过使用nohupscreen 来解决这个问题,但没有任何效果。我知道我必须将 adb 进程置于后台,但是如何使用 xterm 来做到这一点?


编辑:

我正在寻找可以终止/关闭xterm 窗口,但不是 adb 进程的解决方案。后来我想在同一个xterm窗口中使用多个命令,比如

system("xterm -e \"adb start-server; adb connect 192.168.X.XXX;\"");

以及我希望在同一个xterm 中看到的所有输出(以及最终的错误)。

【问题讨论】:

  • 哪个操作系统? Unix/Linux?
  • Linux,抱歉我忘记发了

标签: c++ linux shell process xterm


【解决方案1】:

你可以这样做:

xterm -e /bin/bash -c "adb start-server; /bin/bash"

【讨论】:

  • 谢谢,但这并不是我所期待的。运行此命令后,xterm 终端会弹出而不会自行终止。我觉得没问题,但是现在我想在不终止 adb 进程的情况下关闭 xterm 窗口,我该怎么做呢?
  • 我听不懂你。在你运行 adb start-server 之后,直到你运行 adb kill-server adb daemon 应该可以工作,即使你关闭了你机器上的所有 xterm。手动尝试,例如运行 xterm,从 xterm 运行另一个 xterm,在该 xterm 中运行“adb start-server”,关闭 xterm,然后在父 xterm 中运行“ps aux | grep adb”。
  • 是的,当我运行 xterm 时它可以工作,并且我用手在那里写 adb start-server。关闭 xterm 窗口后,adb 进程仍在运行。问题是当我使用我的答案中的 -e 选项运行 xterm 终端时。之后 adb 启动,并在 xterm 关闭时被杀死。也许我做错了,这样的事情应该换个方式?
  • 我刚刚意识到我不需要运行 xterm 来启动服务器,我可以这样做 - system("adb start-server"),然后我可以运行其他命令在 xterm 中 ;) 感谢您的帮助!
猜你喜欢
  • 1970-01-01
  • 2022-01-18
  • 1970-01-01
  • 2012-09-19
  • 2017-07-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-12-08
相关资源
最近更新 更多