替换 AIX 上的共享库

发布于 2024-10-07 10:53:53 字数 183 浏览 10 评论 0原文

我在 AIX 上有一个共享库 (.so) 我知道所有进程都在使用它。 我已经停止了所有相关的进程。 我需要使用 cp -p 命令替换上面的 .so 文件(使用新库)。 但上面的命令报错: “无法删除正在运行的程序”

当我尝试“cp -p -f”时,它工作正常, 但我只需要使用“cp -p” 关于这个问题的任何想法都会有所帮助。 谢谢。

I have a shared library (.so) on AIX
I know what all processes are using it.
I have stopped all the concerned processes.
I need to replace the above .so file (with the new library) using cp -p command.
But the above command is giving error:
"Cannot remove the running program"

While i am trying "cp -p -f" it is wroking fine,
But I need to use only "cp -p"
Any idea on this matter will be helpful.
Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

美羊羊 2024-10-14 10:53:53

使用 slibclean 命令,然后“cp -p”工作正常。

used slibclean command,then "cp -p" worked fine.

GRAY°灰色天空 2024-10-14 10:53:53

安全的方法是使用临时文件:

cp -p /from/libfoo.so /target/libfoo.so.tmp
mv -f /target/libfoo.so.tmp /target/libfoo.so

您不必停止任何程序来执行此操作;并且目标目录中不会有任何时刻没有 libfoo.so 。

有时调用 slibclean 来保持内存干净也没什么坏处。使用 'genkld | wc -l' 在它之前和之后检查它是否做了任何事情。

The safe way is using temporal file:

cp -p /from/libfoo.so /target/libfoo.so.tmp
mv -f /target/libfoo.so.tmp /target/libfoo.so

You don't have to stop any program to perform this; and there won't be any moment when there is no libfoo.so in target directory.

Also it doesn't hurt to call slibclean sometimes, to keep the memory clean. Use 'genkld | wc -l' before and after it to check if it has done anything.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文