在 bash 中,使用 control-z 暂停进程有哪些潜在的负面后果?

在 bash 中,使用 control-z 暂停进程有哪些潜在的负面后果?

使用 bash,可以使用 暂停进程control-z。但是,是否有任何一般情况或准则需要注意进程在暂停时表现不佳的情况?

我的具体场景是创建一个 tar 文件,其花费的时间比预期的要长。我想暂停它以将其置于后台,但决定不这样做。当然,我的问题不是特定于 tar 的。相反,我希望更好地理解 bash 中的暂停功能,以及什么会使进程对暂停反应不佳。

答案1

如果您的进程正在写出数据,请注意非随机访问设备和缓冲区的计时问题可能会出现问题。我发现磁带驱动器有时会出现此问题。

答案2

依赖于原子副本的存储任务(pvmove、veritas vx-whatever)。如果他们陷入无法控制的境地,那就不好了。这取决于任务是否只触发一些 API 并从内核空间完成其余部分,那么它是安全的。如果它发生在在你的 shell 中*处理*,然后真正使用屏幕并保持双手远离。

绝对建议您避免将它们阻止到后台。使用 dd 等缓冲区的命令似乎更好,但上面提到的磁带驱动器除外。

(我曾经赢得了额外的重启,更少的睡眠和很多偏执,当这种情况发生在我身上,同时清理其他人的烂摊子。显然:如果你正在修复别人的捷径,不要尝试走捷径......)

答案3

还有常见的情况:按 Ctrl-Z,然后忘记它并注销,然后丢失进程! =)

答案4

这并不是问题的具体答案,但您也可以尝试使用screen.因此,您可以将 shell 与另一个程序同时使用。

相关内容