Linux系统线上操作替换文件需要注意哪些

发布时间:2022-05-03 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Linux系统线上操作替换文件需要注意哪些脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

  如果不了解linux系统线上操作替换文件的话,很容易导致在cp时出现text file busy错误提示,所以掌握Linux系统线上操作替换文件是很重要的,下面随小编一起来了解下吧。

 Linux系统线上操作替换文件的注意事项

  最近发现很多哦鞥有不知道线上操作替换文件的要点。所以小编又整理了一下,以便你有个了解。

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

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

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

  上面就是Linux系统线上操作替换文件的注意事项的介绍了,如果你在cp时提示text file busy的话,可能就是操作方面的错误了,应改为mv类操作。

脚本宝典总结

以上是脚本宝典为你收集整理的Linux系统线上操作替换文件需要注意哪些全部内容,希望文章能够帮你解决Linux系统线上操作替换文件需要注意哪些所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:Linux