返回信息流小白求问,请各位大神指点
linux下的动态库加载问题
我现在有一个动态库,test_so,然后在我的服务中调用了它;服务是一直运行着的
然后我想要修改test_so,执行了dlopen,dlsys,dlclose以后发现还是调用的原来的test_so的内容,请问这是怎么回事?
求大神们不吝指教,万分感谢
这是一条镜像帖。来源:北邮人论坛 / cpp / #88536同步于 2015/9/9
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
关于so的问题
angleqlssy
2015/9/9镜像同步17 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
用java吧,java的动态类装载甩开c/c++好几条街。
【 在 angleqlssy 的大作中提到: 】
: 小白求问,请各位大神指点
: linux下的动态库加载问题
: 我现在有一个动态库,test_so,然后在我的服务中调用了它;服务是一直运行着的
: ...................
来自「北邮人论坛手机版」
恩,这个不是我说了算的
【 在 nuanyangyang 的大作中提到: 】
: 用java吧,java的动态类装载甩开c/c++好几条街。
:
: 来自「北邮人论坛手机版」
恩是的,有没有一种方法直接update,而不是先del+add这种方式?
【 在 zx723 的大作中提到: 】
: 应该先把原来的close掉吧
【 在 angleqlssy 的大作中提到: 】
: 恩是的,有没有一种方法直接update,而不是先del+add这种方式?
恩,我没有见过dlupdate什么的。。。
恩,是的;就是不想重新启动服务才想找一种更好的方法;
要不然登上100多台服务器,每台服务器重启服务也是醉了;
目前能做到的就是先del掉so,然后换上新的以后,再add进来
但是,从del到add中间也有服务停止的空隙,所以想找一个无缝切换的好办法
【 在 inaadversity 的大作中提到: 】
: 你的服务已经把老的SO加载到进程空间了,重新运行服务
【 在 angleqlssy 的大作中提到: 】
: 恩,是的;就是不想重新启动服务才想找一种更好的方法;
: 要不然登上100多台服务器,每台服务器重启服务也是醉了;
: 目前能做到的就是先del掉so,然后换上新的以后,再add进来
: ...................
100多台服务器?不停止服务的前提下更新?
要不要试试“API gateway”设计模式?用一台或几台机器做gateway,更多的机器做具体服务器;具体服务器实现一种或几种服务,gateway接受用户请求,将一个请求转发给其中一台具体服务器处理。这样,如果想更新具体服务器,只要暂时让gateway把流量转移到别的服务器上,然后重启这个服务器上的程序,然后继续为整体服务;重复这个动作可以把所有的服务器都更新。这里,具体服务器可以用任何语言实现。