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

Kum*_*lok 107 linux unix process

我对 CTRl+Z 的行为究竟是什么感到好奇和困惑。

我知道,如果一个进程在前台运行,我们按 ctrl+z,它会转到后台。

但究竟发生了什么。

它是继续做它的工作,还是它被暂停,并停止在它原来的位置。

如果它在那时停止,后台作业的含义是什么。

小智 94

“后台工作”只是一个不与用户交互的工作——它不控制 tty,它只是做它的事情(通常是静默的)。前台工作则相反,它控制着 tty 与用户交互。

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

  • `fg %1` 不是 `fb %1` (3认同)
  • 要使用 `fg` 撤消后台进程,首先通过发出 `jobs` 来确定哪个作业,然后说它是否为 %1,然后发出 `fb %1` 并且进程将恢复 (2认同)

Bri*_*new 72

按 Ctrl+Z 将TSTP信号发送到您的进程。这会停止执行(内核不会再为进程安排更多 CPU 时间)并且进程正在等待 CONT 继续处理。

您可以通过kill -TSTPand模拟/复制它kill -CONT(因为kill它将向您的进程发送指定的信号,尽管名称!)

外壳具有“背景”进程的功能,但这是外壳和进程之间的关系。过程本身并没有真正的“背景”或“前景”的概念。

请参阅此处了解更多信息。

  • `^Z` 发送 SIGTSTP,而不是 SIGSTOP (5认同)

Bol*_*olo 18

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

echo 2^10000000 | bc -lq | wc -c
Run Code Online (Sandbox Code Playgroud)

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

echo 2^10000000 | bc -lq | wc -c &
Run Code Online (Sandbox Code Playgroud)


小智 9

按 ctrl+z 时,进程会暂停和停止。使用 fg 您可以将暂停的作业移动到前台,使用 bg 您可以在后台运行它。

有关更多信息,请参阅http://linuxreviews.org/beginner/jobs/