在 bash 中,使用 control-z 暂停进程的潜在负面后果是什么?

Wes*_*ley 11 command-line process suspend

使用 bash,您可以使用control-z. 但是,是否有任何一般情况或指导方针可以注意进程在暂停时表现不佳的情况?

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

Mag*_*lan 6

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


Flo*_*igl 3

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

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

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