当前位置: 首页 > 面试题库 >

更新共享库而无需重新启动进程

韩鸿波
2023-03-14
问题内容

如果我的进程正在加载.so库,并且该库有新版本可用,是否可以在不重新启动进程的情况下切换到新库?还是答案取决于诸如库中现有功能之一是否有参数更改之类的事情?

我正在一个相当大的系统中工作,该系统运行100多个进程,每个系统加载10多个库。这些库提供特定的功能,并由独立的团队提供。因此,当其中一个库发生更改(可以说是针对错误修复)时,理想的做法是在后台发布它而不影响运行的过程。可能吗

编辑
谢谢!以我为例,当有新库可用时,所有正在运行的进程都必须开始使用它。不允许他们使用旧版本运行并在以后使用新版本。因此,看起来更安全的选择是重新加载进程。


问题答案:

您无法在运行进程的情况下即时升级链接库。您甚至可以尝试,但是如果成功(并且不会出现“正在使用文本文件”的错误消息),则必须重新启动该过程以使其将新库映射到内存中。

您可以使用lsof命令检查链接的库(运行时或链接时):

lsof -p <process_pid> | grep ' mem '


 类似资料:
  • 问题内容: 我正在尝试为我的Java游戏添加重启/重播功能。当前在我的Game类(GUI和游戏被初始化的地方)中,我有: 游戏对象包含整个游戏窗口的GUI,并包含各种对象(例如实际游戏窗口,计分板,倒数计时器等)。 我想添加一个功能,如果他们单击GUI上的重新启动按钮或游戏结束后,游戏将重新启动(以及倒计时和计分)。我确实意识到最好重新实例化对象(计分,倒数),但是一旦实例化,它们便成为我的GUI

  • 问题内容: 我正在使用$ _SESSION变量通过AJAX发送电子邮件(它们需要在不刷新页面的情况下发送),但是$ _SESSION变量不会自动更新,因此当它更改时,我需要刷新页面以更新变量。 是否可以不刷新而更新$ _SESSION变量? 这是我用来发送电子邮件的代码: 因此,基本上,如果$ _SESSION变量更改,则需要此AJAX电子邮件来识别它,而无需刷新。 谢谢你的帮助 问题答案: 当您

  • 问题内容: 我将如何更新每两秒钟在服务器上更新一次的映像,而无需用户按下刷新按钮,我的第一个猜测是ajax,但我之前从未真正使用过它。有人能指出我正确的方向吗? 编辑:忘记提及图像是由perl脚本生成的.gif-尝试通过url抓取它返回脚本 问题答案: 您的Perl脚本似乎有问题。尝试通过URL访问图像应该仍然返回图像。它应该返回二进制数据而不是脚本。您还应该将响应的Content- type标头

  • 问题内容: 我想知道是否可以在不重新启动JBoss服务器的情况下部署Java类文件。我正在使用jboss v4.2.2。 另外,当我尝试部署jsp文件时,它工作正常,服务器几乎立即接收到更改。 在此先感谢:) 问题答案: 我使用Tomcat比使用JBoss更好,但是应该可以(如在Tomcat中)重新启动应用程序而无需重新启动应用程序服务器。如果服务器具有“开发模式”并且该模式处于活动状态,则应该可

  • 问题内容: 好的,这就是我想要做的(我认为Google也是这么做的): 方案A: 在页面中,假设有3个部分。当用户点击“链接”部分时,的内容将通过AJAX加载并嵌入到页面中。 方案B: 当被加载时,我们实际上去非常相同的页面(如在方案A) - 和负载通过AJAX -如前。 问题 : 我们有2个相同的结果页面,但是URL不同(在第一种情况下,它只是,而在第二种情况下是)。 我想做的事 : 在方案A中

  • 问题内容: 我从数据库获取数据并将其显示在div中…我要做的是单击链接时应更改div的内容 一种选择是通过URL将参数传递给自身并重新加载页面… 我需要这样做而 无需重新加载\刷新 … 目的是当我单击任何链接时,div和php变量的内容无需刷新即可更新....这样 用户可以看到新数据 ,然后如果执行某些查询,它将在新变量上 ps我知道它将需要一些AJAX,但我不知道AJAX ..所以请以我可以学习