首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何确定哪些进程正在过时的包上运行,需要重新启动?

如何确定哪些进程正在过时的包上运行,需要重新启动?
EN

Unix & Linux用户
提问于 2022-10-21 11:38:12
回答 1查看 62关注 0票数 0

因此,我知道可以查看或恢复进程当前正在使用的已删除文件。我发现这也适用于更新过的包。因此,假设我们更新了一个包,但是该包仍然被另一个进程使用,并最终运行在该包的旧版本上,因为它尚未重新启动。因此,我的问题是,由于该包没有重新启动,我们如何确定在该包的旧版本上运行的进程?

EN

回答 1

Unix & Linux用户

发布于 2022-10-21 14:22:40

共享库inode是在/proc/PID/maps中注册的,即运行在Fedora 36上的nginx

代码语言:javascript
运行
AI代码解释
复制
7f9190a00000-7f9190a9a000 r--p 00000000 103:04 794344                    /usr/lib64/libstdc++.so.6.0.30

这里解释了该文件的格式。

基本上,第五个字段是inode号。更新库后,您必须遍历/proc/[0-9]+/maps,并检查单个共享库是否与其真正的文件系统对应。要获得真正的inode文件号,可以使用ls --inode /path/filestat --printf=%i /path/file

下面是我刚刚写的一个脚本,它展示了这样的过程:

代码语言:javascript
运行
AI代码解释
复制
#! /bin/bash

cd /proc || exit 1

for i in [0-9]*; do
    test ! -d $i && continue # PID could have already died
    awk '$6 ~ /\// {print $5" "$6}' "$i/maps" | sort -u | while read inode_p so; do
            if [ -f "$so" ]; then
                inode_r=`stat --format=%i "$so"`
                test "$inode_p" != "$inode_r" && echo "PID $i `cat $i/comm` maps stale file '$so'"
            fi
    done
done

它显示了所有映射的文件问题。如果只希望将其限制为共享库,请将-f "$so"替换为-e "$so"

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/721949

复制
相关文章
如何在Linux中查看所有正在运行的进程
你可以使用ps命令。它能显示当前运行中进程的相关信息,包括进程的PID。Linux和UNIX都支持ps命令,显示所有运行中进程的相关信息。ps命令能提供一份当前进程的快照。如果你想状态可以自动刷新,可以使用top命令。
用户4988085
2021/07/21
62.3K0
linux 重新启动正在运行的Linux操作系统 命令:reboot
-d:重新开机时不把数据写入记录文件/var/tmp/wtmp。本参数具有“-n”参数效果;
用户7639835
2021/10/13
2.3K0
如何编写bash脚本以便在进程死机时重新启动进程
我如何编写一个bash脚本来检查它是否正在运行,如果没有,则启动它。大致如下伪代码(或者它应该做一些类似 ps | grep 的事情?)
程序熵
2023/11/01
2180
如何编写bash脚本以便在进程死机时重新启动进程
在bash中检测进程是否正在运行
比如我们启动了一个这样的进程python -m SimpleHTTPServer 8000,我们想检测这个进程是否存在,可以这样。
技术小黑屋
2018/09/04
3.7K0
如何在 Linux 系统中使用 `ps` 命令查看当前正在运行的进程?
摘要:本文将介绍如何在 Linux 系统中使用 ps 命令查看当前正在运行的进程。我们将深入研究 ps 命令的语法和选项,并提供一些实际的例子来帮助你更好地理解如何使用它。同时,我们还将讨论一些与进程管理相关的其他命令和工具,以便你能够更好地管理你的系统进程。
默 语
2024/11/20
4530
如何解决 `oldUser()` 函数无法运行且反复重新启动的问题
如果 oldUser() 函数在运行时出现反复重新启动或无法正常工作的问题,可能是由于以下原因之一导致的。以下是排查和解决问题的步骤,具体看看我是怎么操作的。
华科云商小徐
2024/12/09
900
WMI技术介绍和应用——查询正在运行的进程信息
       在《WMI技术介绍和应用——使用VC编写一个半同步查询WMI服务的类》一文中,我们介绍到了一个半同步查询WMI类的框架。本文将是该技术的一个应用,介绍如何使用WMI技术查询正在运行的进程信息。(转载请指明出于breaksoftware的csdn博客)
方亮
2019/01/16
1.8K0
【Rust调用Windows API】获取正在运行的全部进程信息
WIndows API官方文档 提供了C++的调用示例,最近想尝试用Rust去实现,本系列博客记录一下实现过程。
beifengtz
2024/11/18
3030
【Rust调用Windows API】获取正在运行的全部进程信息
如何在 Linux 中查看正在运行的进程?这三个命令轻松实现!
Linux 是一种自由和开放源代码的操作系统,它的使用在全球范围内非常广泛。在 Linux 中,进程是操作系统中最重要的组成部分之一,它代表了正在运行的程序。了解如何查看正在运行的进程是非常重要的,因为它可以帮助您了解系统的运行状态并对其进行管理。本文将介绍如何在 Linux 中查看正在运行的进程,并提供一些实用的例子。
网络技术联盟站
2023/05/03
60.1K0
如何在 Linux 中查看正在运行的进程?这三个命令轻松实现!
Docker - 如何SSH到正在运行的容器
本文介绍如何通过SSH将一个Docker容器连接到另一个Docker容器。首先,在源Docker容器上安装SSH。然后,使用生成的SSH密钥对目标Docker容器进行身份验证。最后,使用SCP将文件从源容器发送到目标容器。
Hero
2018/01/04
3.4K0
在centos操作系统中查看所有正在运行的进程
在centos操作系统中查看所有正在运行的进程,你可以使用ps命令。它能显示当前运行中进程的相关信息,包括进程的PID。Linux和UNIX都支持ps命令,显示所有运行中进程的相关信息。ps命令能提供一份当前进程的快照。如果你想状态可以自动刷新,可以使用top命令。
用户1685462
2021/07/30
4.5K0
ios ipa包上传需要什么工具
iOS IPA包是iOS应用程序的安装包,可以通过iTunes或者其他第三方应用商店安装到iOS设备上。在开发iOS应用程序时,开发人员需要将应用程序打包成IPA包,然后上传到App Store或者
iOS Magician
2023/10/28
3330
ios ipa包上传需要什么工具
如何找出正在访问pvc挂载点的容器进程
如果一个pod在被销毁时其pvc挂载节点无法解挂会导致pod一直处于Terminating状态无法删除,出现这种情况时在系统/var/log/messages搜索pod 的uid能找到到umount对应pvc报Resouce busy。
cdh
2023/11/21
5190
如何确定您的企业需要使用在线CRM?
如果您是一个企业管理层,您可能已经听说过CRM,它的意思是客户关系管理。在线CRM是CRM系统的SAAS版本,无需安装任何软件,在网页上就可以将所有客户内容保存起来,简化您的工作方式,节省宝贵时间和金钱。但是您可能会想:“我为很么需要在线CRM,它对我有什么用?”很高兴你能有这个疑问,说明您开始思考在线CRM是否适合你,您可以通过以下方法确定您的企业是否需要CRM。
All in
2020/04/29
4160
Docker - 如何SSH连接到正在运行的容器
本文介绍了如何通过SSH将一个Docker容器连接到另一个Docker容器。首先,我们介绍了如何安装和配置SSH。然后,我们提供了两种方法,将现有容器连接到其他容器。第一种方法是使用Docker Compose,第二种方法是使用启动脚本。这些方法允许您通过SSH将一个Docker容器连接到另一个Docker容器,从而在它们之间传输数据和执行命令。
勤奋的小北鼻
2018/01/03
2.7K0
在MySQL中如何确定哪些索引是“几乎没用”的
确定哪些索引是“几乎没用”的,通常需要通过一系列的监控、分析和评估步骤来完成。以下是一些建议的步骤和方法: 使用查询执行计划: 通过在查询前加上EXPLAIN关键字,你可以查看MySQL查询的执行计划。执行计划中会显示哪些索引被使用,以及是否使用了全表扫描。如果某个索引在大量查询中都没有被使用,那么它可能是“几乎没用”的。 监控索引使用情况: 大多数数据库管理系统都提供了监控索引使用情况的工具或方法。例如,在MySQL中,你可以查看SHOW INDEX的结果或使用Performance Schema来监控索引的使用情况。如果一个索引长时间内都没有被使用过,那么它可能是不必要的。 分析查询日志: 分析慢查询日志可以帮助你识别那些执行时间较长的查询,并确定它们是否使用了索引。如果一个索引没有在慢查询中被使用,那么它可能是不必要的。 评估业务逻辑: 了解你的应用程序的业务逻辑和数据访问模式。如果某个索引的列在业务逻辑中很少被用作查询条件,或者该列的值变化很快(导致索引失效),那么这个索引可能是不必要的。 删除和测试: 在删除任何索引之前,最好先在测试环境中进行验证。首先,备份你的数据库,然后删除你认为不必要的索引。接着,运行一系列典型的查询和事务来模拟生产环境。如果性能没有明显下降,并且查询仍然能够正常工作,那么你可以考虑在生产环境中删除该索引。 定期评估: 数据库的使用情况和数据模式可能会随着时间的推移而发生变化。因此,你应该定期评估索引的有效性,并根据需要进行调整。 考虑使用自动化工具: 一些数据库管理系统提供了自动化工具来帮助识别和优化索引。这些工具可以分析查询日志、执行计划和索引使用情况,然后给出建议来优化索引配置。 请注意,在删除任何索引之前,务必谨慎行事,并确保你有足够的备份和恢复计划。错误的删除可能会导致性能下降或其他不可预见的问题。
jack.yang
2025/04/05
970
高级调试技巧揭秘:深入了解gdb调试正在运行的进程
gdb(GNU调试器)是一个功能强大的调试工具,被广泛用于C、C++等编程语言的调试过程中。它提供了一系列的功能和命令,可以帮助诊断和修复程序中的错误。
Lion Long
2024/10/24
6490
高级调试技巧揭秘:深入了解gdb调试正在运行的进程
如何使用Vegile隐藏指定进程的运行
Vegile是一款针对Linux系统设计和开发的强大后渗透测试工具,该工具所提供的后渗透利用技术可以确保广大研究人员保持一定程度的访问权,并允许对目标可信网络执行更加深入的渗透测试与安全分析。
FB客服
2023/02/09
1.8K0
如何使用Vegile隐藏指定进程的运行
恶意软件Symbiote将感染Linux系统上所有正在运行的进程
近期,一种新发现的名为Symbiote的Linux恶意软件会感染目标系统上所有正在运行的进程,窃取帐户凭据并为其背后的操作员提供后门访问权限。据调查,该恶意软件会将自身注入所有正在运行的进程,就像是一个系统里的寄生虫,即使再细致的深入检查期间也不会留下可识别的感染迹象。它使用 BPF(柏克莱封包过滤器)挂钩功能来嗅探网络数据包并隐藏自己的通信通道以防止安全工具的检测。 BlackBerry和 Intezer Labs 的研究人员发现并分析了这种新型威胁,他们在一份详细的技术报告中揭示了该新恶意软件的详细信息
FB客服
2023/03/30
1.3K0
恶意软件Symbiote将感染Linux系统上所有正在运行的进程
如何暂停一个正在运行的线程?
停止线程是在多线程开发中很重要的技术点,比如在多线程持续处理业务代码时,由于处理逻辑中有第三方接口异常,我们就假设发送短信接口挂了吧,那么此时多线程调用短信接口是没有任何意义的,我们希望接口恢复后再对接口进行处理,那么此时怎么办呢,如何中止已经启动的线程呢?
niceyoo
2020/07/27
2.1K0

相似问题

如何检查哪些特定进程(Python脚本)正在运行?

20

如何确定进程正在执行的指令?

10

确定进程正在运行的特定处理器

10

如何知道哪些进程正在使用或侦听哪些网络接口?

10

如何在linux中重新启动(或重置)正在运行的进程

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档