如何将后台任务返回到前台?

如何将后台任务返回到前台?

我想知道如何停止跑步过程将其附加后&

例如,我想安装软件foo。现在,假设foo有很多依赖项,需要一个小时才能完成。所以,我这样做:yum install foo &。但我想通过将其置于前台(我的问题的实际前​​提)来停止正在进行的过程,以便我可以中断它,或者在必要时通过其他方法。

Ctrl+C似乎并没有阻止这个。

答案1

如果您启动命令的终端仍然打开,您可以通过运行将其恢复fg

如果不是,请通过运行ps aux | grep yum 或仅识别进程 ID pgrep yum,然后使用kill PID。或者,如果您知道只有一个yum实例,请运行pkill yum.

答案2

如果您位于同一个 shell 中,则始终可以使用该进程的前台fg(如果您的 shell 支持它),此时您可以执行Ctrl+C.

正如其他人提到的,您可以使用多种ps选项kill

如果你愿意,你甚至可以使用top和过滤你的用户名并以这种方式杀死。

答案3

尝试这个:

kill -QUIT `pidof yum`

这将停止,终止这个过程。可能需要使用比QUIT信号更好的力量,然后尝试TERM,然后再尝试KILL

你可能也比较懒,就这样做:

killall -QUIT yum

这将影响所有名为 的进程yum

答案4

您正在寻找的组合键不是

ctrl-c

当您中断进程时使用它(相当于使用ctrl- c

如果您ctrl-z相反,您会将作业放在后台,类似于&最后使用。

但是,这样您就可以使用以下命令将进程带回前台fg

pidof或者,您可以使用Scyld 中提到的方式查找 pid

相关内容