Вопрос: Изящно убить defrag.exe при запуске в командной строке


Когда я запускаю defrag в командной строке, есть ли способ изящно остановить процесс до его завершения?

Убивает ли задача TM в случае возникновения проблем, если она находится в середине перемещения файла?

Windows 7 Pro 64bit


4
2017-08-08 01:17


Источник




Ответы:


Теоретически, нужно просто закончить программу (в вашем случае вы можете использовать CTRL-C), потому что в разработке приложения Microsoft Disk Defragmenter прилагаются усилия для предотвращения потери данных в случае неожиданного прерывания. Это описано на веб-сайте Microsoft следующим образом:

The following steps are the processes by which Disk Defragmenter and
file system defragment an NTFS volume and update the MFT.

   1. Locate the fragments of each file throughout the disk.
   2. Copy the fragments to contiguous locations on the disk.
   3. Verify that the copy is an exact duplicate of the original file.
   4. Update the MFT in NTFS with the new location of the beginning of
      the file.
   5. Free up the space previously used by the file.

Microsoft - как работает дефрагментация диска
http://technet.microsoft.com/en-us/library/cc778290(WS.10).aspx
(приведенный выше текст можно найти в разделе "Обновление таблицы основных файлов«)

По существу, данные скопированный к новым секторам, указатели на перенесенные данные обновляются, чтобы указывать на эти новые сектора, а затем старые сектора освобождаются в результате. Это очень безопасный подход к использованию в случае сбоя, потому что в худшем случае (например, сбой на синем экране) у вас будет две копии одних и тех же данных, одна на нераспределенных секторах, а другая по выделенным секторам. С точки зрения чтения данных он будет выглядеть одинаково в любом случае.

Кроме того, есть много улучшений, которые могут быть внесены в методы дефрагментации диска, которые Microsoft использует (которые уже более чем достаточны для многих людей), и множество альтернативных продуктов изучаются и сравниваются здесь очень подробно:

Defragger (из глоссария Java Roedy Green's)
http://www.mindprod.com/jgloss/defragger.html


4
2017-08-08 02:09



Отлично, как обычно Рандольф! - Moab


Control C, чтобы отменить его.

Я не ожидаю, что диспетчер задач причинит какой-либо вред, так как он сначала попросит закрыть программу, прежде чем она перенаправит ее.


6
2017-08-08 01:29



Причина, о которой я просил несколько лет назад, я изложил установку XP, заставив дефрагментацию закрыться с помощью gui, он не ответил и поэтому я убил ее в TM, попытался несколько попыток, но TM окончательно убил ее, после перезагрузки она была разбита. Я был нетерпелив в те годы моей жизни. - Moab
Да, убийство ТМ не всегда является хорошей идеей. Один из самых сложных уроков, которые я изучил на C ++, заключается в том, что создание процесса очень просто. Прекрасное завершение процесса - это то, что отделяет мальчиков от мужчин. - surfasb
Его грубая сила, которая касается меня, ее почему я спросил, был ли изящный метод. - Moab
@Moab, просто используйте Ctrl + C; он не убивает процесс, так как вы можете его увидеть после этого (он обнаруживает нажатие клавиши, прерывает дефрагментацию, затем выводит сообщение). Я вспоминаю еще в дни DOS, что был способ установить обработчик Ctrl + C (я использовал его в программе Pascal), поэтому неудивительно, что консольные приложения Windows-7 могут это сделать. - Synetech
@moab: не используйте TM. Или получить копию MyDefrag что дает вам еще более подробный контроль над вашими дефрагментами. Не волнуйся. Он использует те же API, что и defrag. Подумайте об этом, я не могу вспомнить последний раз, когда мне приходилось запускать программу дефрагментации. Это должно было быть до Vista. , , - surfasb


Эта тема имеет много полезной информации о том, существуют ли опасности для дисков, которые были дефрагментированы во время сбоя питания (в то время как не идентичны вашей ситуации, вы все равно резко останавливали программу), как любезно заметил комментатор, если система может восстановить от аппаратного прерывания, прерывание программного обеспечения, вероятно, не повредит).

Кажется, похоже defrag проходит через журнал, который возникает при нормальном использовании.


2
2017-08-08 01:32



Я думаю, вы могли бы добавить что-то вроде «если даже жесткое закрытие, вероятно, не повредит его, тогда для выключения программного обеспечения не будет» - soandos
Хорошая статья, но на самом деле не отвечает на мой вопрос о том, как грациозно прекратить работу. - Moab
@soandos Это хороший момент. Действительно, оба способа останавливают программное обеспечение, прежде чем у него есть возможность очистить. - jonsca
@Moab Я думаю, что мы оба говорим, что обычные методы Ctrl-C или их убийство из диспетчера задач никому не повредят. Просто запустите chkdsk (или эквивалент), чтобы убедиться. - jonsca
Да, но таким образом вы более непосредственно отвечаете на вопрос, просто что-то, что вы можете добавить к своему ответу. - soandos