位置: 编程技术 - 正文

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

编辑:rootadmin
最近发现很多同学不知道线上操作替换文件的要点。所以又整理了一下。 线上替换一个正在运行进程的文件时(包括二进制、动态库、需要读取的资源文件等)。应避免使用cp/scp操作。而需要使用mv/rsync作为替代。 原因:cp是将源文件截断然后写入新内容。也就是说正在打开这个文件的进程可以立刻感知到修改。修改文件内容很可能导致程序逻辑错误甚至崩溃。而mv则是标记”删除“老文件,然后放一个新的同名文件过去。也就是说老文件和新文件其实是两个不同文件(inode不同),只是名字一样而已。正在打开老文件的进程不会受到影响。如果进程使用了mmap打开某文件(比如载入so),如果目标文件被使用cp覆盖并且长度变小。那么读取差额部分的地址时(在新文件中其实已经不存在了),会导致SIGBUS信号。使进程崩溃。 至于可执行文件本身。倒是不怕cp导致崩溃。。因为cp时会报”text file busy"。压根cp不了。这时候也应该使用mv类操作。替换完成后重启进程。执行的就是新的可执行文件了。

推荐整理分享linux系统更新正在运行进程的可执行文件需要注意的text file busy的原因及解决方法(linux 更新yum),希望有所帮助,仅作参考,欢迎阅读内容。

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

文章相关热门搜索词:linux 更新系统,linux更新系统命令,linux 更新系统,linux 更新,linux 软件更新,linux更新包,linux 更新系统,linux 更新yum,内容如对您有帮助,希望把文章链接给更多的朋友!

Linux服务器管理日记分享 1.安装webmin复制代码代码如下:#安装webmincd/usr/local/ieternal/mkdirdownloadcddownload/ppwgetahref="

Linux中使用sed命令替换字符串小结 最近写了几个小脚本用到了sed命令,学了一下,顺便记下sed替换的基本语法为:复制代码代码如下:sed's/原字符串/替换字符串/'单引号里面,s表示替换,三根斜

linux安装vsftpd和vsftpd配置步骤 第一步:下载vsftpd的RPM包你可以从下面两个地方获得最新的vsftpd的RPM包Redhat'srpmcollection或者rpmfind.net.为了你的方便,你也可以使用wget从本站下载vsftpd的rpm

本文链接地址:https://www.jiuchutong.com/biancheng/356975.html 转载请保留说明!

上一篇:linux系统启动weblogic受管服务器报unable to get file lock, will ret_daring的解决(Linux系统启动文件在哪个文件)

下一篇:Linux服务器管理日记分享(Linux服务器管理的开机界面)

免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络