CTRL + Z 对 unix\Linux 应用程序有何影响

CTRL + Z 对 unix\Linux 应用程序有何影响

CTRl我很好奇并且困惑+的行为到底是什么Z

我知道,如果一个进程正在运行前景,然后我们按ctrl+ z`,它会转到背景

但究竟发生了什么?它会继续执行其工作吗?还是会暂停?并停止在原来的位置。

如果它在那时停止了,那么后台作业的意义何在?

答案1

“后台作业”就是不与用户交互的作业 —— 它不控制 tty,只是做它自己的事(通常是默默地)。前台作业则相反,它控制 tty 来与用户交互。

Control-Z 暂停最近的前台进程(与 tty 交互的最后一个进程)(除非该进程采取措施忽略暂停,就像 shell 通常所做的那样)。这通常会将您带回到 shell,您通常可以从中输入命令将bg刚刚暂停的进程移至后台(让其继续运行)或fg将其带回前台。

答案2

ctrl+z发送TSTP向您的进程发出信号。这将暂停执行(内核不会再为该进程分配任何 CPU 时间),并且该进程正在等待 CONT 以继续处理。

kill -TSTP您可以通过和来模拟/复制这一点kill -CONT(因为kill无论名称如何,它都会向您的流程发送指定信号!)

shell 具有以下功能:背景进程,但这是 shell 和进程之间的关系。进程本身并没有真正的概念背景或者前景

更多信息请参阅:

答案3

考虑这个命令,它在我的笔记本电脑上大约需要 4.5 秒:

echo 2^10000000 | bc -lq | wc -c

当您按下Ctrl+时Z,计算将被暂停。您可以选择使用 在前台恢复计算fg,或使用 在后台恢复计算bg。后者或多或少相当于执行:

echo 2^10000000 | bc -lq | wc -c &

答案4

按 ctrl+z 键可暂停并停止进程。使用 fg 可以将暂停的作业移至前台,使用 bg 可以在后台运行该作业。

http://linuxreviews.org/beginner/jobs/了解更多信息。

相关内容