【发布时间】:2015-08-20 02:25:17
【问题描述】:
我在 AIX 上有一个共享库 (.so) 我知道所有进程都在使用它。 我已经停止了所有相关的进程。 我需要使用 cp -p 命令替换上面的 .so 文件(使用新库)。 但是上面的命令给出了错误: "无法删除正在运行的程序"
虽然我正在尝试“cp -p -f”,但效果很好, 但我只需要使用“cp -p” 关于这个问题的任何想法都会有所帮助。 谢谢。
【问题讨论】:
标签: aix
我在 AIX 上有一个共享库 (.so) 我知道所有进程都在使用它。 我已经停止了所有相关的进程。 我需要使用 cp -p 命令替换上面的 .so 文件(使用新库)。 但是上面的命令给出了错误: "无法删除正在运行的程序"
虽然我正在尝试“cp -p -f”,但效果很好, 但我只需要使用“cp -p” 关于这个问题的任何想法都会有所帮助。 谢谢。
【问题讨论】:
标签: aix
使用 slibclean 命令,然后 "cp -p" 工作正常。
【讨论】:
安全的方法是使用临时文件:
cp -p /from/libfoo.so /target/libfoo.so.tmp
mv -f /target/libfoo.so.tmp /target/libfoo.so
您无需停止任何程序即可执行此操作;并且不会有任何时刻目标目录下没有libfoo.so。
有时调用 slibclean 也没有什么坏处,以保持内存清洁。使用'genkld | wc -l' 在它之前和之后检查它是否做了任何事情。
【讨论】: