主页 > 知识库 > linux系统更新正在运行进程的可执行文件需要注意的text file busy的原因及解决方法

linux系统更新正在运行进程的可执行文件需要注意的text file busy的原因及解决方法

热门标签:电销机器人怎么打卡 抖音商家地图标注入驻店 江西意向度高的羿智云外呼系统 无锡真人电销机器人供应商 河南语音电销机器人加盟公司 济南智能语音电销机器人加盟 易联系统外呼营销来回呼 无锡ai智能语音电销机器人厂家 如何找电销机器人
最近发现很多同学不知道线上操作替换文件的要点。所以又整理了一下。

线上替换一个正在运行进程的文件时(包括二进制、动态库、需要读取的资源文件等)。应避免使用cp/scp操作。而需要使用mv/rsync作为替代。

原因:cp是将源文件截断然后写入新内容。也就是说正在打开这个文件的进程可以立刻感知到修改。修改文件内容很可能导致程序逻辑错误甚至崩溃。而mv则是标记”删除“老文件,然后放一个新的同名文件过去。也就是说老文件和新文件其实是两个不同文件(inode不同),只是名字一样而已。正在打开老文件的进程不会受到影响。如果进程使用了mmap打开某文件(比如载入so),如果目标文件被使用cp覆盖并且长度变小。那么读取差额部分的地址时(在新文件中其实已经不存在了),会导致SIGBUS信号。使进程崩溃。

至于可执行文件本身。倒是不怕cp导致崩溃。。因为cp时会报”text file busy"。压根cp不了。这时候也应该使用mv类操作。替换完成后重启进程。执行的就是新的可执行文件了。

标签:保山 江苏 宿州 河源 滨州 常德 绥化 亳州

巨人网络通讯声明:本文标题《linux系统更新正在运行进程的可执行文件需要注意的text file busy的原因及解决方法》,本文关键词  linux,系统,更新,正在,运行,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《linux系统更新正在运行进程的可执行文件需要注意的text file busy的原因及解决方法》相关的同类信息!
  • 本页收集关于linux系统更新正在运行进程的可执行文件需要注意的text file busy的原因及解决方法的相关信息资讯供网民参考!
  • 推荐文章