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

pos*_*ing 20 command-line job-control

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

为此,我想将它带到前台,然后按 ctrl + c 或其他什么。我尝试使用fg,但它也不起作用。那么ping google.com &在我的 ping 命令结束时按下回车键后,我该如何回到前台呢?

Zan*_*nna 34

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

获取当前职位:

$ jobs
[1]+     ping google.com &
Run Code Online (Sandbox Code Playgroud)

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

fg %1
Run Code Online (Sandbox Code Playgroud)

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

然后点击ctrl+c中断并停止该过程

如评论中所述,您还可以按作业编号发送信号,例如 kill %1

为了完整起见,如果您&在调用进程时没有使用,您可以通过先用ctrl+冻结z然后键入将其发送到后台bg