Должен ли я выполнять проверку состояния гонки при параллельном выполнении sed в одном и том же файле?

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

Должен ли я выполнять проверку состояния гонки при параллельном выполнении sed одного и того же файла?


person MOHAMED    schedule 02.03.2015    source источник
comment
Вы имеете в виду редактирование на месте или просто использование одного и того же файла в качестве ввода для нескольких одновременных команд sed?   -  person Wintermute    schedule 02.03.2015
comment
зависит также от действия sed. Например, если добавить информацию, независимо от других строк (или если они не найдены), можно использовать параллель без блокировки. На самом деле это будет в основном зависеть от желаемой модификации, которая очень широка, поскольку возможности   -  person NeronLeVelu    schedule 02.03.2015
comment
@Wintermute Команды sed редактируют файл с -i ==› удалением строк   -  person MOHAMED    schedule 02.03.2015


Ответы (1)


Это зависит. Являются ли некоторые из этих исполнений sed редактирующими файл (например, с опцией -i gnu-sed) и ожидаете ли вы последовательного и надежного вывода? Если да, то да, замок нужен. Имейте в виду, что sed -i не изменяет файл, над которым вы работаете; он создает временный файл и переименовывает его, и это повлияет на ваш анализ состояния гонки. Если ни один из ваших скриптов не изменяет файл, тогда нет состояния гонки и нет необходимости в блокировке.

person William Pursell    schedule 02.03.2015
comment
Команды sed редактируют файл с -i ==› удалением строк - person MOHAMED; 02.03.2015