【问题标题】:How to bring a background program to foreground如何将后台程序带到前台
【发布时间】:2012-12-31 08:31:01
【问题描述】:

我正在使用 CentOS6,并在 tmux 会话上运行 django 服务器以进行开发:

python manage.py runserver 0.0.0.0:8000

这样我就可以读取我的调试字符串打印了。

虽然有一个未知原因导致我的 tmux 会话丢失,但我无法使用“tmux attach”命令返回我的工作会话。

我仍然可以通过 ps 命令找到我的服务器正在运行,但我无权杀死它以便在同一端口上运行新服务器。

所以,我想再次调用这个后台服务器到前台。

由于我从不使用 ctrl+z 或其他方式获取进程背景,所以即使我使用作业命令,也没有作业。

但我不知道我是否可以做到这一点,以及如何做到这一点......

谢谢大家!!

【问题讨论】:

  • 没有工作。我从来没有使用 +z 让我正在运行的程序返回到后台,所以 fg 不起作用。
  • 对不起,我忘记了我的开发环境是PC上的虚拟机,所以实际上服务器仍在我的开发PC上运行。但是我怀疑为什么我在虚拟机的主机上使用 ps 时可以找到正在运行的服务器信息?

标签: linux shell


【解决方案1】:

使用jobs 命令查找由您启动的后台进程列表。 例如:有一个脚本在 5 次迭代中简单地休眠 10 秒。我在后台运行了 4 次。

>jobs
[1]  + Running                       ./temp.sh
[2]  - Running                       ./temp.sh
[3]    Running                       ./temp.sh
[4]    Running                       ./temp.sh

fg 是将其带回前台的命令,如下所示。

>fg 1
[CTRL -c]

如上所示,我已经结束了这个过程,它不再存在。 现在如果我再次运行jobs

>jobs
[2]  + Running                       ./temp.sh
[3]    Running                       ./temp.sh
[4]  - Running                       ./temp.sh
>

您也可以查看here了解更多信息

【讨论】:

  • 我想我们只能在jobs 下列出进程,前提是它故意在后台运行。即 - 使用 & 。如果我错了,请纠正我。
【解决方案2】:

您可以使用命令jobs 获取您的作业列表,然后您可以使用fg <number of job> 将该作业置于最前面。

【讨论】:

  • 没有工作。我从来没有使用 +z 或其他方式让它运行后台,所以 fg 不起作用!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-22
  • 2022-09-26
  • 2011-08-12
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多