CTRl我很好奇并且困惑+的行为到底是什么Z。
我知道,如果一个进程正在运行前景,然后我们按ctrl+ z`,它会转到背景。
但究竟发生了什么?它会继续执行其工作吗?还是会暂停?并停止在原来的位置。
如果它在那时停止了,那么后台作业的意义何在?
答案1
“后台作业”就是不与用户交互的作业 —— 它不控制 tty,只是做它自己的事(通常是默默地)。前台作业则相反,它控制 tty 来与用户交互。
Control-Z 暂停最近的前台进程(与 tty 交互的最后一个进程)(除非该进程采取措施忽略暂停,就像 shell 通常所做的那样)。这通常会将您带回到 shell,您通常可以从中输入命令将bg
刚刚暂停的进程移至后台(让其继续运行)或fg
将其带回前台。
答案2
答案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 可以在后台运行该作业。