Уничтожение процесса архивирования Unix - PullRequest
1 голос
/ 27 января 2012

Я использую утилиту xz zipping на кластере PBS; Я только что понял, что время, отведенное для моих архивируемых заданий, не будет достаточно продолжительным, и поэтому хотел бы перезапустить их (а затем, вероятно, мне нужно будет включить уже созданный .xz в новом архивном файле?). Безопасно ли убивать задания или это может повредить файлы .xz, которые уже были созданы?

1 Ответ

1 голос
/ 28 января 2012

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

  • На любые выходные файлы из уже сжатых входных файлов это не должно повлиять. Полученные .xz сжатые файлы должны оставаться в идеальном состоянии.

  • Любые входные файлы, которые еще не были обработаны, не должны изменяться вообще.

  • На входной файл, который был сжат во время завершения, не должно повлиять.

  • При условии, что процесс завершается с использованием сигнала SIGTERM , а не сигнала, который не может быть перехвачен, например SIGKILL, xz следует очистить после себя перед выходом. Точнее говоря, он не должен оставлять никаких частичных выходных файлов.

  • Если xz убит с применением силы, самое худшее, что должно произойти (в отличие от может ), - это сохранение частично сжатого файла на диске, верно вдоль соответствующего входного файла. Возможно, вы захотите убедиться, что такие файлы очищены должным образом - хороший способ - это xz работать в отдельной директории от фактической области хранения и перемещать файлы в сжатие и выгружать.

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

...