如何将一个进程发送到后台和前台?

如何将一个进程发送到后台和前台?

如果我这样做ping google.com &,该进程将进入后台并不断向我显示 ping 详细信息。我仍然可以将终端与其他命令一起使用,但 ping 的输出和其他命令的输出会混淆(这不是问题),但我根本无法终止此 ping 进程。

为此,我想将其带到前台,然后按 ctrl + c 或其他键。我尝试使用fg,但也没有用。那么,ping google.com &在我按完 ping 命令的末尾的回车键后,如何让它回到前台呢?

答案1

fg是将作业置于前台的正确命令,但如果有多个作业正在运行,则应指定作业编号。如果仅输入fg,则最后一个后台作业(shell 认为是当前作业)将被置于前台。

获取当前职位:

$ jobs
[1]+     ping google.com &

通过指定数字将作业置于前台:

fg %1

该命令可能会被正在运行的进程的输出打断,但它仍然可以工作,您可以忽略中断。

然后点击ctrl+c来中断并停止进程

正如评论中提到的,您还可以通过作业编号发送信号,例如kill %1

为了完整起见,如果你在调用该过程时没有使用,你可以先使用+&冻结,然后输入ctrlzbg

相关内容