iis服务器助手广告广告
返回顶部
首页 > 资讯 > 操作系统 >linux系统更新正在运行进程的可执行文件需要注意的text file busy的原因及解决方法是怎样的
  • 505
分享到

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

2023-06-13 03:06:25 505人浏览 薄情痞子
摘要

linux系统更新正在运行进程的可执行文件需要注意的text file busy的原因及解决方法是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。最近发现很多同学不知道线上

linux系统更新正在运行进程的可执行文件需要注意的text file busy的原因及解决方法是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

最近发现很多同学不知道线上操作替换文件的要点。所以又整理了一下。

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

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

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

看完上述内容,你们掌握linux系统更新正在运行进程的可执行文件需要注意的text file busy的原因及解决方法是怎样的的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注编程网操作系统频道,感谢各位的阅读!

--结束END--

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

本文链接: https://www.lsjlt.com/news/264865.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作