Без возможности исследовать это самостоятельно, это становится умозрительным, но использование:
rm abc.so
cp new_version.so abc.so
не влияет на программы, которые уже загрузили abc.so
.Для программ, связанных с abc.so
(или использующих dlopen
для загрузки), это будет представлять проблему, если они запускаются (или используют dlopen
) во время удаления файла или его копирования на место.Результатом вполне может быть дамп ядра.
Лучший способ заменить ваш abc.so
:
copy new_version.so to the same filesystem as abc.so (like the same directory)
mv new_version.so abc.so
Это гарантирует, что всегда есть полная версия abc.so
, где онаОжидается, что будет.Любая программа, нуждающаяся в ней, получит либо старую версию , либо новую версию - и между ними ничего нет.