Можно ли изменить исходный двоичный файл в Linux, если какой-либо процесс, порожденный этим двоичным файлом, все еще работает?

У меня такое чувство, что вы могли бы сконцентрировать свой код, используя GNU Parallel:

find -name '*.enc' | parallel echo Full:{} Cut:{.}

Или, если код сложнее:

#!/bin/bash

doit() {
  FULLNAME="$1"
  CUTNAME="$2"
  echo "FULLNAME - $FULLNAME"
  echo "FILENAME - $CUTNAME"
}
export -f doit

find -name '*.enc' | parallel doit {} {.}
1
20.03.2020, 18:51
1 ответ

Попробуйте:

cd $(mktemp -d)
cp /bin/sleep.
./sleep 120 &
echo test > sleep

Оператор перенаправления оболочки изменяет файл на месте -, и это завершается ошибкой «текстовый файл занят».

Однако можно заменить файл:

cp /bin/ls sleep

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

3
28.04.2021, 23:20

Теги

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