4
当我杀死-9或拔出电源时,究竟*到底是什么被弄砸了?
设定 我已经当了很长时间的程序员,但是我对深层的内部东西还是有点模糊。 现在。我很清楚,这不是一个好主意: 杀死-9个进程(坏) 自发拔出正在运行的计算机或服务器上的电源插头(更糟) 但是,有时您只是必须这样做。有时,无论您做什么,一个进程都不会响应,有时,无论您做什么,一台计算机都不会响应。 假设系统通过mod_wsgi运行Apache 2,MySQL 5,PHP 5和Python 2.6.5。 注意:我对Mac OS X最感兴趣,但是与任何UNIX系统相关的答案都可以帮助我。 我的顾虑 每次我必须执行其中之一,尤其是第二次时,我很担心一段时间内某些东西已损坏。某处的某些文件可能已损坏-谁知道哪个文件?计算机上有超过1,000,000个文件。 我经常使用OS X,因此我将通过“磁盘工具”运行“验证磁盘”操作。它不会报告任何问题,但是我仍然对此表示关注。 如果某个地方的配置文件搞砸了怎么办。甚至更糟的是,如果某个地方的二进制文件损坏了怎么办。或者某个脚本文件现在已损坏。如果某些硬件损坏了怎么办? 如果直到下个月(在严重的情况下)腐败或破坏造成灾难的情况下我仍未找到答案,该怎么办? 或者,如果有价值的数据已经丢失怎么办? 我的希望 我希望这些担心和担忧是没有根据的。毕竟,经过多次这样的尝试,还没有发生真正的坏事。最糟糕的是我不得不修复一些MySQL表,但是我似乎没有丢失任何数据。 但是,如果我的担心不是没有根据的,并且在情况1或2中都可能发生真正的损害,那么我希望有一种方法可以检测到并防止这种情况发生。 我的问题 难道是因为现代操作系统旨在确保在这些情况下没有损失?可能是因为现代软件旨在确保没有损失吗?那么现代硬件设计呢?拔下电源插头时有哪些措施? 我的问题是,对于这两种情况,究竟会出现什么错误,应采取哪些步骤加以解决? 我的印象是,可能出错的一件事是某些程序可能没有将其数据刷新到磁盘,因此应该将任何最新的数据写入磁盘(例如,上电前几秒钟) )可能会丢失。但是除此之外呢?而这个5秒钟的数据丢失问题是否会破坏系统? 隐藏在硬盘驱动器上巨大文件林中某个地方的随机文件损坏怎么办? 硬件损坏怎么办? 什么对我最大的帮助 当您终止-9个进程或拉动整个系统的电源时,内部发生的情况的详细说明。(似乎是即时的,但是有人可以替我放慢速度吗?) 在这些情况下,所有可能出错的事情的解释,以及(当然是)大概的概率(即,这种可能性很小,但这很可能)... 描述了现代硬件,操作系统和软件中为防止发生这些情况而造成的损坏或破坏的措施。(安慰我) 有关在“验证磁盘”之外执行杀死-9或上电后执行操作的说明,以真正确保驱动器上某处没有损坏或损坏。 可以采取的加强计算机设置的措施,以便如果必须杀死某些物品或必须切断电源,则可以减轻任何潜在的损坏。 有关二进制文件的一些信息-apache二进制文件或某个库的中间是否有一个随机字节或两个损坏,这是不是真的,直到以后才会出现并引起问题?我如何向自己保证这不是由于拉力或杀死而导致的? 非常感谢!