使用 bash,可以使用 暂停进程control-z
。但是,是否有任何一般情况或准则需要注意进程在暂停时表现不佳的情况?
我的具体场景是创建一个 tar 文件,其花费的时间比预期的要长。我想暂停它以将其置于后台,但决定不这样做。当然,我的问题不是特定于 tar 的。相反,我希望更好地理解 bash 中的暂停功能,以及什么会使进程对暂停反应不佳。
答案1
如果您的进程正在写出数据,请注意非随机访问设备和缓冲区的计时问题可能会出现问题。我发现磁带驱动器有时会出现此问题。
答案2
依赖于原子副本的存储任务(pvmove、veritas vx-whatever)。如果他们陷入无法控制的境地,那就不好了。这取决于任务是否只触发一些 API 并从内核空间完成其余部分,那么它是安全的。如果它发生在那在你的 shell 中*处理*,然后真正使用屏幕并保持双手远离。
绝对建议您避免将它们阻止到后台。使用 dd 等缓冲区的命令似乎更好,但上面提到的磁带驱动器除外。
(我曾经赢得了额外的重启,更少的睡眠和很多偏执,当这种情况发生在我身上,同时清理其他人的烂摊子。显然:如果你正在修复别人的捷径,不要尝试走捷径......)
答案3
还有常见的情况:按 Ctrl-Z,然后忘记它并注销,然后丢失进程! =)
答案4
这并不是问题的具体答案,但您也可以尝试使用screen
.因此,您可以将 shell 与另一个程序同时使用。