Процесс запущен [закрыт]

Глядя на реализацию sort, к которой у меня есть самый простой доступ (OpenBSD), похоже, что вы потеряете данные, если входной файл будет добавлен между

  • и sort, закончив чтение данных из входного файла и приступив к фактической сортировке, и
  • утилита sort, переименовывающая свой временный выходной файл в имя реального выходного файла (задаваемое -o аргумент) непосредственно перед выходом.

Я не вижу способа предотвратить это, кроме как временно приостановить любой процесс записи в файл перед его сортировкой, а затем запустить их снова, когда сортировка будет завершена. Это можно сделать с помощью kill -STOP и kill -CONT соответственно.

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

1
19.01.2018, 09:32
0 ответов

Теги

Похожие вопросы