四时宝库

程序员的知识宝库

内核futex的BUG导致程序hang死问题排查

背景

近日,Hadoop的同学反映,新上的几台机器上的java程序出现hang死的现象,查看系统的message记录,发现一些内存方面的错误输出,怀疑是内存不足导致java程序hang死在gc的过程中。经排查发现即使是在内存充足的情况下也会出现程序hang死的现象。

我们又发现只有这批新上的机器才出现hang死的问题,之前老机器上一直很正常。排查后发现在老机器上有一个监控脚本,每隔一段时间就会用jstack查看一下java程序的状态。关了监控脚本后,老机器也出现了hang死的问题。最后我们发现使用jstack、pstack都可以将原来hang死的程序刷活。

Linux kill 命令(linux kill-15)

向以 PID 进程号或者 JOBSPEC 任务声明指定的进程发送一个以SIGSPEC 信号声明或 SIGNUM 信号编号命名的信号。如果没有指定SIGSPEC或 SIGNUM,那么假定发送 SIGTERM 信号。

Kill 成为 shell 内嵌有两个理由:它允许使用任务编号而不是进程号,并且在可以创建的进程数上限达到是允许进程被杀死。

Linux之kill命令(linux常用命令kill)

Linux中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令。通常,终止一个前台进程可以使用Ctrl+C键,但是,对于一个后台进程就须用kill命令来终止,我们就需要先使用ps/pidof/pstree/top等工具获取进程PID,然后使用kill命令来杀掉该进程。kill命令是通过向进程发送指定的信号来结束相应进程的。在默认情况下,采用编号为15的TERM信号。TERM信号将终止所有不能捕获该信号的进程。对于那些可以捕获该信号的进程就要用编号为9的kill信号,强行“杀掉”该进程。

Linux命令学习——kill命令(linux kill-9)


Linux kill 命令用于停止执行中的程序或任务

1.命令格式

kill [options] ...[processid]...

Android Native Hook技术你知道多少?

Hook 直译过来就是“钩子”的意思,是指截获进程对某个 API 函数的调用,使得 API 的执行流程转向我们实现的代码片段,从而实现我们所需要得功能,这里的功能可以是监控、修复系统漏洞,也可以是劫持或者其他恶意行为。

相信许多新手第一次接触 Hook 时会觉得这项技术十分神秘,只能被少数高手、黑客所掌握,那 Hook 是不是真的难以掌握?希望今天的文章可以打消你的顾虑。

Native Hook 的不同流派

openEuler操作系统管理员指南:管理进程

操作系统管理多个用户的请求和多个任务。大多数系统都只有一个CPU和一个主要存储,但一个系统可能有多个二级存储磁盘和多个输入/输出设备。操作系统管理这些资源并在多个用户间共享资源,当用户提出一个请求时,造成好像系统被用户独占的假象。实际上操作系统监控着一个等待执行的任务队列,这些任务包括用户任务、操作系统任务、邮件和打印任务等。本章节将从用户的角度讲述如何控制进程。

正点原子I.MX6U嵌入式Linux C应用编程 第八章 信号

信号:基础

本章将讨论信号,虽然信号的基本概念比较简单,但是其所涉及到的细节内容比较多,所以本章篇幅也会相对比较长。事实上,在很多应用程序当中,都会存在处理异步事件这种需求,而信号提供了一种处理异步事件的方法,所以信号机制在Linux早期版本中就已经提供了支持,随着Linux内核版本的更新迭代,其对信号机制的支持更加完善。

本章将会讨论如下主题内容。

  • 信号的基本概念;
  • 信号的分类、Linux提供的各种不同的信号及其作用;

linux进程间通信—管道(用信箱实现进程间通信时应该)

Linux编程进程间通信(1)管道

1、 管道概述及相关API应用

1.1 管道相关的关键概念

管道是Linux支持的最初Unix IPC形式之一,具有以下特点:

管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;

只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);

单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在与内存中。

Linux信号机制与信号处理(linux 信号处理机制)

定义

信号(signal)是Linux进程间通信的一种机制,全称为软中断信号,也被称为软中断。信号本质上是在软件层次上对硬件中断机制的一种模拟。

与其他进程间通信方式(例如管道、共享内存等)相比,信号所能传递的信息比较少,只是一个整数。信号只是用来通知某进程发生了什么事件,并不给该进程传递任何数据。但正是由于传递的信息量少,信号也便于管理和使用,可以用于系统管理相关的任务,例如通知进程终结、中止或者恢复等。

实现Linux ptrace(实现中华民族伟大复兴的必由之路)

本文介绍这些工具的底层 ptrace 是如何实现的。这里选用了 1.2.13 的早期版本,原理是类似的,新版内核代码过多,没必要陷入过多细节中。

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接