Как защитить процесс от сбоя, изменив динамическую библиотеку, загруженную в Linux? - PullRequest
1 голос
/ 14 сентября 2011

У меня есть процесс, который загружает динамическую библиотеку при запуске (dlopen / dlsym и т. Д.), И я могу отправьте ему некоторое сообщение во время работы, чтобы позволить процессу выгрузить предыдущий .so (dlclose) и загрузить новенький.

Здесь возникает вопрос, во время выполнения процесса, если я передаю новый .so с помощью nc, например:

nc -l 9999 > mylibrary.so

Если я дам nc то же имя файла, которое было загружено процессом, то процесс получит segv сразу после выполнения вышеуказанной команды.

Другой случай, который вызовет сбой процесса, - это когда я упаковываю файл .so в пакет rpm и .so файл в rpm совпадает, тогда yum update XXX также вызовет сбой процесса.

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

Любые мысли будут благодарны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...