当前位置:  技术问答>linux和unix

紧急求助:如何在应用程序运行的时候给程序打补丁?

    来源: 互联网  发布时间:2016-09-12

    本文导语:  环境:Linux AS5.0 开发语言:c/c++ 需求:在应用程序运行的时候,希望能够不停止应用程序,而对应用程序打补丁,从而改变应用程序的行为。 印象当中VxWorks系统是可以的,但是Linux下查了一天,没有找到。diff和patch...

环境:Linux AS5.0
开发语言:c/c++

需求:在应用程序运行的时候,希望能够不停止应用程序,而对应用程序打补丁,从而改变应用程序的行为。
印象当中VxWorks系统是可以的,但是Linux下查了一天,没有找到。diff和patch是对源代码打补丁的,实现不了这个功能。

那位高手用过,指点一下。谢谢!!!



|
用 dlopen, dlclose. 是可以实现动态加载和卸载动态库的。

但是动态更新模块对程序的设计要求比较高,简单点说就是要动态库提供的接口尽量简单,功能尽量独立,
当模块被卸载的时候,  主程序要能缓存 需要 被卸载模块去处理的数据。 

|
我有一个思路, 就是利用动态库;补丁什么的,就是替换动态库,然后重新加载就行;比如,如查程序中用到libabc.so, 我替换掉libabc.so之后, 向程序发一个信息,告诉它有库更新了;它可以重新载入这个.要不用用dlopen?

|
所谓软件,包含几个部分:
1、二进制的执行代码,不包括动态库,也就是执行文件。执行后就装载到内存中,无法改变。
2、动态库,也就是.so文件,通过dlopen装载。这些文件可以动态替换,不过如果程序已经装载了该so文件,则必须通知(比如发信号)程序重新装载。
3、资源文件。如果程序已经打开,正在使用,则需要通知程序重新打开。否则直接替换即可。

如果补丁是针对源码的,你可以编译后,根据上面的原则替换对应文件,不过要保证编译参数跟运行中的版本一致。

另外,给进程发SIGCOUT信号也可以重启进程,不过进程同时也被打断了。

|
动态库的加载也是在程序启动时就加载的,而不是在使用到函数的时候才去加载的,所以怕也无法实现楼主的要求的。

|
开发我不太会  但是我感觉这个可不可以  跟你程序自身的关系最大

印象当中VxWorks系统是可以的
------------------
你的印象是什么样的?

|
对原代码打完补丁后,编译链接,然后重启应用程序就可以了。如果需要热替换,似乎还没有见到过。

|

太高深了
我在想 要是所有的系统 所有的软件都能很容易做成楼主说的那样
以后系统 软件升级打补丁 再也不用重启系统或者服务  那多好啊紧急求助:如何在应用程序运行的时候给程序打补丁?[图片]

    
 
 

您可能感兴趣的文章:

  • 菜鸟求助:Linux 应用程序后台启动后关闭窗口程序退出
  • 求助 如何取消fedora 8启动时候的欢迎应用程序
  • 高分求助foxpro的jdbc驱动程序!!!!
  • 高分求助程序框架!!!!
  • 求助访问linux下jboss应用程序?
  • 求助:脚本文件和主程序通信问题
  • 求助:程序移植,让程序拷过去就可以用
  • Linux配置程序求助
  • 程序打包,求助!
  • [求助]如何获取一个程序所使用的系统调用和参数?
  • 菜鸟求助:如何让自己编的小程序,开机自动运行?
  • gtk程序中如何定时刷新?求助
  • 菜鸟的问题:求助,关于red hat linux 引导程序
  • 各位师哥师姐,我急切求助,关于文件的上传下载程序代码
  • IPTABLE辅助程序求助
  • 求助SHELL程序
  • 求助 程序中添加互斥锁代码后编译怎么通不过 ?
  • 【求助】应用程序能用likely和unlikely宏吗?
  • 求助!! 在QTE 下如何编写播放flash的 程序????
  • 求助!怎样实现一个程序长期固定的在一块物理内存
  • [求助]如何在linux下运行windows应用程序????
  • 【求助】如何在应用程序中得到系统的剩余物理内存大小?
  • 【求助】基于2.6.29内核编译的驱动程序能否应用于2.6.32内核的系统?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • iptables已打入string match补丁,编译内核无法找到该项,求助高手!
  • 高分求助高分求助高分求助高分求助高分求助高分求助
  • 怎样读取HZK24S前十区的内容啊???求助求助
  • 紧急求助!紧急求助!
  • 【求助】iplanet问题,求助高手解答!
  • 菜鸟求助,solaris下计算问题求助
  • 【求助】SOS紧急求助..............极为简单的问题...跪求....
  • 高分求助啊!求助SUSE 10.0 不能上网.
  • 急急急急急急急啊,紧急求助啊!!!!!满分求助啊!!!!!!
  • 求助:linux下 vim的配置(高分求助)
  • red hat怎么安装gcc啊!总是出错,求助求助啊!!!yum源怎么改啊!!
  • 求助~~求助 ~~linux文件读写问题
  • 求助:信号 --13 进程中断
  • 求助,安装了红帽子后进不了
  • 新装linux求助
  • linux的 iptables问题求助
  • (高分求助)请问,那里有软件开发的<设计文档>
  • 一个简单的问题,高分求助!!!
  • 紧急求助:Unix下给文件夹重命名用什么命令?谢谢!!!!
  • VJ的一个问题,高分求助,熟悉VJ得请进!
  • 高分求助


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3