首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Linux 使用strace命令查找进程卡死原因

点击小卡片,回复 “合集” 获取系统性的学习笔记和测试开发技能图谱 背景 最近遇到某个线上服务进程卡死的情况,但是在本地调试的过程中又没法复现,需要在线上服务器运行一段时间后在某些条件下才会触发。...定位问题 首先我们用ps auxf命令查看我们的进程执行到了哪一步: 可以看到执行到了[sh]然后就卡死了,然后我们接着通过strace命令来查看执行这个操作死在了哪个系统回调: root@demo...socket:[675848446] lrwx------ 1 root root 64 Jul 14 05:58 5 -> socket:[675847890] 我们可以发现,5代表的是socket,说明进程是死在...socket通讯上了,那么再去排查线上服务器中有哪些服务用到了socket,最后定位到是X服务中大量不合理的使用socket连接导致的,至此问题就定位到了。

4.9K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Linux使用KILL 0检测进程是否存在

    1 关于kill 0的说明1 从上图DESCRIPTION区域的文字可以看出,kill函数中的形参sig是0的话,那么不会向pid进程发送任何信号,但是仍然会继续检测错误(进程ID或者进程组ID是否存在...FileName chk_signal_exist.c * @Describe A simple example for checking if a proccess is existing in linux...\n", p ); } GO_FREE(p); return 0; } 3 测试执行 使用《Linux C/C++工程中可生成ELF、动/静态库文件的通用Makefile》一文中的...先测试进程不存在的情况:随便输入一个进程ID(23232)作为参数1 然后测试进程存在的情况:先使用ps命令查看已存在的进程daemon_sleep1(20608),然后把作为参数1传入 4 其它说明...它只是kill函数中的一个普通形参而已,大于0的时候发送对应信号给某个进程,等于0的时候表示检测某个进程是否存在。

    18910

    Linux如何判断自己的服务器是否被入侵

    如何判断自己的服务器是否被入侵了呢?仅仅靠两只手是不够的,但两只手也能起到一些作用,我们先来看看UNIX系统上一些入侵检测方法,以LINUX和solaris为例。...,如果你看到输出了一个类似inetd –s /tmp/.xxx之类的进程,着重inetd –s后面的内容。...一旦发现异样的进程,经检查为入侵者留下的后门程序,立即运行kill –9 pid 开杀死该进程,然后再运行ps –aef查看该进程是否被杀死;一旦此类进程出现杀死以后又重新启动的现象,则证明系统被人放置了自动启动程序的脚本...在linux下输入ls –al /var/log 在solaris下输入 ls –al /var/adm 检查wtmp utmp,包括messgae等文件的完整性和修改时间是否正常,这也是手工擦除入侵痕迹的一种方法...在LINUX下可以用rpm –V `rpm –qf 文件名` 来查询,国家查询的结果是否正常来判断文件是否完整。

    2.9K41

    Linux如何判断自己的服务器是否被入侵

    如何判断自己的服务器是否被入侵了呢?仅仅靠两只手是不够的,但两只手也能起到一些作用,我们先来看看UNIX系统上一些入侵检测方法,以LINUX和solaris为例。...,如果你看到输出了一个类似inetd –s /tmp/.xxx之类的进程,着重inetd –s后面的内容。...一旦发现异样的进程,经检查为入侵者留下的后门程序,立即运行kill –9 pid 开杀死该进程,然后再运行ps –aef查看该进程是否被杀死;一旦此类进程出现杀死以后又重新启动的现象,则证明系统被人放置了自动启动程序的脚本...在linux下输入ls –al /var/log 在solaris下输入 ls –al /var/adm 检查wtmp utmp,包括messgae等文件的完整性和修改时间是否正常,这也是手工擦除入侵痕迹的一种方法...在LINUX下可以用rpm –V `rpm –qf 文件名` 来查询,国家查询的结果是否正常来判断文件是否完整。

    3.5K70

    Linux进程如何查看进程详情?

    使用该命令可以确定有哪些进程正在运行和运行的状态、进程是否结束、进程有没有僵尸、哪些进程占用了过多的资源等等.总之大部分信息都是可以通过执行该命令得到。...7、如何根据线程来过滤进程呢? 如果我们想知道特定进程的线程,可以使用 -L 参数,后面加上特定的PID。 $ ps -L 1213 ? 8、如何树形的显示进程?...如果想要查看现在有谁登入了你的服务器。可以使用ps命令加上相关参数: $ ps -eo pid,user,args 参数 -e 显示所有进程信息,-o 参数控制输出。...12、最后 你也许每天都会使用ps命令来监控你的Linux系统。但是事实上,你可以通过ps命令的参数来生成各种你需要的报表。...ps命令的另一个优势是ps是各种 Linux系统都默认安装的,因此你只要用就行了。不要忘了通过 man ps来查看更多的参数。

    12.4K20

    如何检查您的Linux服务器是否受到DDoS攻击

    但是什么是 DDoS 攻击,如何识别它们,以及如何保护您的网站免受它们的侵害? 在本指南中,我们将了解 DDoS 攻击的常见迹象以及您可以采取哪些步骤来减轻它们造成的损害。   什么是 DDoS?...如何检查您的 Linux 服务器是否受到 DDoS 攻击 好消息是,因为这些连接是实时的,您可以看到它们的建立过程。...使用一些简单的命令,您不仅可以确定 DDoS 是否正在发生,而且还可以获得帮助缓解这些攻击所需的信息。   ...如何检查 DDoS 如果您担心您的服务器可能受到 DDoS 攻击,您需要做的第一件事就是查看服务器上的负载。 像 uptime 或 top 命令这样简单的东西会让你很好地了解服务器的当前负载。   ...如何检查哪些 IP 连接到您的服务器 由于大多数 DDoS 攻击需要连接到您的服务器,您可以检查并查看有多少 IP 地址和哪些 IP 地址连接到您的服务器

    1.7K20

    如何快速终止Linux进程

    你尝试再次运行该程序,系统反馈说原来的进程没有完全关闭。 那么,如何快速方便的杀死某些进程呢?我们可以参考本文,介绍如何快速完美的清除进程。...我来概述的步骤是每个 Linux 发行版都能用的,不论是桌面版还是服务器版。...没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后在购买服务器。 查找进程ID(PID) 结束进程的常见模式是通过它的进程ID(PID)。...在这种情况下,killall是一个选项: killall [process name] 更多关于kill和killall命令,可以参考如何使用killall和kill命令来停止进程这篇文章。...---- 参考文献:《Find and Terminate Processes from the Linux or Mac OS Command Line》

    3.6K30

    Linux下通过grep查找指定的进程是否存在

    一、功能介绍 Linux通过命令查找指定的进程是否存在,并返回该进程的PID号。 在程序中可以使用该方法监控指定的程序是否在运行,如果异常退出,可以重新启动指定程序或者系统。...} cnt=fread(cmd_buff,1,sizeof(cmd_buff)-1,fp); cmd_buff[cnt]='\0'; pclose(fp); //判断是否读取到数据...\n"); } else { printf("查找的进程PID=%d\n",pid); } return 0; } 三、检测指定程序是否存在,不存在就重新启动...$2}'` if [ ${pid_val} > 0 ] then echo "查找的进程存在" else echo "查找的进程不存在" #重新启动 /mnt/hgfs/linux-share-dir.../linux_c/s_app 8080 & fi sleep 10 done 为了方便启动该脚本,可以在执行程序里增加一行代码,将启动代码追加到系统启动文件里去: grep -q "/home/wbyq

    4.3K40

    linux0.11一个进程的诞生

    这一篇大致说一下进程的创建,有兴趣的可以参考之前的一些文章或者直接上代码https://github.com/theanarkh/read-linux-0.11。 系统有一个GDT表。...该表保存了系统和所有进程的tss和ldt描述符信息。tss就是我们平时说的进程上下文。每个进程有一个ldt数组,里面保存了代码段和数据段的描述符信息。 首先,从一个进程的诞生说起。...我们知道,通过fork可以创建一个进程。下面我们来看一下fork的过程都做了什么事情。先通过find_empty_process获取一个可用的进程id和pcb。pid是进程id。...pcb是管理进程的结构体。...在这里插入图片描述 进程创建的本质就是申请一个新的pcb,里面保存了该进程的相关信息,假设现在轮到该进程执行。系统会根据tss选择子到gdt表中找到tss结构体的地址。

    1.5K11

    带着问题源码 —— 进程 ID 是如何分配的

    Linux 上是如何检索并分配空闲 pid 的?带着这个问题,找出系统对应的内核源码个究竟。...中实测的最大进程 ID 值,看起来 Linux 只用一个内存页就解决了 pid 的快速检索、分配、释放等问题,兼顾了性能与准确性,不得不说确实精妙。...pid 分配 先看看 pid 在 Linux 中是如何存放的: struct pidmap { atomic_t nr_free; void *page; }; struct pid_namespace...pid 释放 进程结束时释放 pid,由于之前说过的原因,Linux 支持容器需要对 pid 进行 namespace 隔离,导致这一块前期的逻辑有点偏离主题 (且没太看懂),就看看具体的 pid 释放过程得了...一文看懂Linux进程ID的内核管理 [9]. linux系统pid的最大值研究 [10]. What is CONFIG_BASE_SMALL=0

    11010

    Linux服务器进程查看命令详解

    Linux 服务器正常启动后,提供服务时会调用程序,占用进程。这时候我们如何查看系统中有哪些进程在被调用呢?我们可以通过以下命令来查看。...一、ps 命令 ps 命令是最基本同时也是非常强大的进程查看命令。使用该命令可以确定有哪些进程正在运行和它所运行的状态、进程是否结束、进程有没有僵死、哪些进程占用了过多的资源等。...SMar16  0:06 nginx: worker process 二、top 命令 top 命令可动态显示服务器进程信息。top 命令和 ps 命令的基本作用是相同的,都显示系统当前进程的状况。...kill 命令的工作原理是,向 Linux 系统的内核发送一个系统操作信号和某个程序的进程标志号,然后系统内核就可以对进程标志号指定的进程进行操作了。...在 Linux 下,最强大的进程管理命令莫过于 ps 和 top 了,我们应该掌握它们的详细语法,在工作中灵活地使用它们。 注:以上内容整理自《构建高可用的 Linux 服务器》一书。

    22.1K101
    领券