一,core的信号

core的信号处理方式:终止进程+产生core文件设置生成core:ulimit -c unlimited
取消生成core:ulimit-c 0

gdb调试使用bag

设置core文件格式:/proc/sys/kernel/core_pattern
文件不能vi,可以用后面的套路 ,使用root权限 echo "core-%e-%p-%t" > /proc/sys/kernel/core_pattern
以下是参数列表 :%p - insert pid into filename 添加 pid%u - insert current uid into filename 添加当前 uid%g - insert current gid into filename 添加当前 gid%s - insert signal that caused the coredump into the filename 添加导致产生 core 的信号%t - insert UNIX time that the coredump occurred into filename 添加 core 文件生成时的 unix 时间%h - insert hostname where the coredump happened into filename 添加主机名%e - insert coredumping executable name into filename 添加命令名

二, 查看 进程的文件描述符

  • 设置文件描述符命令

ulimit -n 999999

  • 查看每一个进程的信息

ls -la /proc/32189/fd

三, ps -aux命令详解

Linux ps aux指令詳解

1, linux上进程有5种状态:

  1. 运行(正在运行或在运行队列中等待)
  2. 中断(休眠中, 受阻, 在等待某个条件的形成或接受到信号)
  3. 不可中断(收到信号不唤醒和不可运行, 进程必须等待直到有中断发生)
  4. 僵死(进程已终止, 但进程描述符存在, 直到父进程调用wait4()系统调用后释放)
  5. 停止(进程收到SIGSTOP, SIGSTP, SIGTIN, SIGTOU信号后停止运行运行)

2, ps 参数

  1. ps a 显示现行终端机下的所有程序,包括其他用户的程序。
  2. ps -A 显示所有程序。
  3. ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
  4. ps -e 此参数的效果和指定"A"参数相同。
  5. ps e 列出程序时,显示每个程序所使用的环境变量。
  6. ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
  7. ps -H 显示树状结构,表示程序间的相互关系。
  8. ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
  9. ps s 采用程序信号的格式显示程序状况。
  10. ps S 列出程序时,包括已中断的子程序资料。
  11. ps -t <终端机编号>  指定终端机编号,并列出属于该终端机的程序的状况。
  12. ps u   以用户为主的格式来显示程序状况。
  13. ps x   显示所有程序,不以终端机来区分。
  14. ps -l 較長,較詳細的顯示該PID的信息
# ps -lA |more
F S UID PID PPID C PRI NI ADDR SZ WCHAN TTY TIME CMD
4 S 0 1 0 0 76 0 - 1193 109952 ? 00:00:03 init
1 S 0 2 1 0 -40 - - 0 migrat ? 00:00:03 migration/0
1 S 0 3 1 0 94 19 - 0 ksofti ? 00:00:00 ksoftirqd/0
1 S 0 4 1 0 -40 - - 0 migrat ? 00:00:02 migration/1
1 S 0 5 1 0 94 19 - 0 ksofti ? 00:00:00 ksoftirqd/1
1 S 0 6 1 0 -40 - - 0 migrat ? 00:00:02 migration/2
1 S 0 7 1 0 94 19 - 0 ksofti ? 00:00:00 ksoftirqd/2
相關信息的意義:
F 進程的標誌(flag),4表示用戶為超級用戶
S 進程的狀態(stat),各STAT的意義見下文
PID 進程的ID
C CPU使用資源的百分比
PRI priority(優先級)的縮寫,
NI Nice值,
ADDR 核心功能,指出該進程在內存的那一部分,如果是運行的進程,一般都是“-”
SZ 用掉的內存的大小
WCHAN 當前進程是否正在運行,若為“-”表示正在運行
TTY 登陸者的終端位置
TIME 用掉的CPU的時間
CMD 所執行的指令
# ps aux |more
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 4772 564 ? S Sep22 0:03 init [3]
root 2 0.0 0.0 0 0 ? S Sep22 0:03 [migration/0]
root 3 0.0 0.0 0 0 ? SN Sep22 0:00 [ksoftirqd/0]
root 4 0.0 0.0 0 0 ? S Sep22 0:02 [migration/1]
root 5 0.0 0.0 0 0 ? SN Sep22 0:00 [ksoftirqd/1]
root 6 0.0 0.0 0 0 ? Ss+ Sep22 0:02 [migration/2]
root 7 0.0 0.0 0 0 ? SN Sep22 0:00 [ksoftirqd/2]
root 8 0.0 0.0 0 0 ? S Sep22 0:00 [migration/3]
root 9 0.0 0.0 0 0 ? SN Sep22 0:00 [ksoftirqd/3]
root 10 0.0 0.0 0 0 ? S< Sep22 0:00 [migration/4]

上述各位解释:

参数 说明
USER 进程的属主;
PID 进程的ID;
PPID 父进程;
%CPU 进程占用的CPU百分比;
%MEM 占用内存的百分比;
NI 进程的NICE值,数值大,表示较少占用CPU时间;
VSZ 进程使用的虚拟內存量(KB);
RSS 该进程占用的固定內存量(KB)(驻留中页的数量);
TTY 该进程在那個終端上運行(登陸者的終端位置),若與終端無關,則顯示(?)。若为pts/0等,则表示由网络连接主机进程
WCHAN 当前进程是否正在進行,若为-表示正在進行;
START 該進程被觸發启动时间;
TIME 該进程實際使用CPU運行的时间;
COMMAND 命令的名称和参数;
STAT 狀態位常見的狀態字符

STAT狀態字符:

D 无法中断的休眠状态(通常 IO 的进程);
R 正在运行可中在队列中可过行的;
S 处于休眠状态;
T 停止或被追踪;
W 进入内存交换 (从内核2.6开始无效);
X 死掉的进程 (基本很少見);
Z 僵尸进程;
< 优先级高的进程
N 优先级较低的进程
L 有些页被锁进内存;
s 进程的领导者(在它之下有子进程);
l 多进程的(使用 CLONE_THREAD, 类似 NPTL pthreads);
+ 位于后台的进程组;

个人博客地址:https://chensongpoixs.github.io/

core文件处理和进程查询相关推荐

  1. 使用gcore工具产生core文件而不杀死进程

    解决方法: 解决: 问题: 当调试一个程序的时候,理想状态是不重启应用程序就获取core文件. 解决: gcore命令可以使用下面步骤来获取core文件: 1. 确认gdb软件包已经被正确安装. 2. ...

  2. core文件 linux,Linux 下core文件的使用

    转储文件(core dump)本来是在程序运行出错的时候产生的.转储文件记录了进程出错时的内存映像,以及进程执行的上下文环境,如寄存器的值等.它的主要用途是在程序运行崩溃时记录下进程的瞬时情况,从而为 ...

  3. linux下产生core文件以及不产生core文件的条件

    原文:http://team.eyou.com/?p=27 Linux下,产生core文件,和不产生core文件的条件: 当我们的程序崩溃时,内核有可能把该程序当前内存映射到core文件里,方便程序员 ...

  4. linux段错误core dumped,段错误 (core dumped) 之 core文件

    当我们的程序崩溃时,内核有可能把该程序当前内存映射到core文件里,方便程序员找到程序出现问题的地方.最常出现的,几乎所有C程序员都出现过的错误就是"段错误"了.也是最难查出问题原 ...

  5. linux core文件GDB调试方法

    一.如何使用core文件 1. 使用core文件 在core文件所在目录下键入: gdb -c coreXXX 它会启动GNU的调试器,来调试core文件,并且会显示生成此core文件的程序名,中止此 ...

  6. linux core文件调试,Linux程序调试助手–core,解决段错误!

    出现问题,不知道怎么解决,出现段错误,解决不了.那试一下core文件信息吧! 采用core文件的方法 1.core文件在什么位置创建? 在进程当前工作目录的下创建.通常与程序在相同的路径下.但如果程序 ...

  7. linux core文件默认位置,linux下core文件

    linux下core文件 参考:http://www.cnblogs.com/li-hao/archive/2011/09/25/2190278.html 并整合其他参考资料 在程序不寻常退出时,内核 ...

  8. gdb 笔记(02)— gdb 调试执行(启动调试、添加参数、附加到进程、调试 core 文件)

    在编译程序时,使用 gcc 或者 g++ 时一定要加上 -g 选项,如 gcc -g -o hello hello.c 以便调试程序含有调试符号信息,从而能够正常调试程序.否则则会出现如下提示,导致不 ...

  9. Linux下core文件介绍与使用方法

    背景 有时当我们在Linux下编程,程序运行时会出现以下提示: Segmentation fault (core dumped) 然后,程序崩溃,退出运行.发生这一问题的原因往往是程序中指针不规范使用 ...

最新文章

  1. Hibernate4多对多关系映射
  2. docker-macvlan网络
  3. 前端:JS/26/实例:随机显示小星星
  4. matlab icol,Matlab 图像处理相关函数命令大全
  5. js点击按钮改变字体大小并给他颜色_如何在Elementor中修改文本的字体、大小、颜色、样式...
  6. 标准c语言有几个关键字,C语言有多少个关键字
  7. Java引用常量得好处_JAVA常量池的作用
  8. 【国家统计局】统计用区划和城乡划分代码2019
  9. BT.709 vs BT.2020
  10. MSDN 2015本地帮助文档安装教程(简单明了版)
  11. 基于JSP网上拍卖平台系统
  12. c语言程序 实现简单计算器功能,C语言实现简单计算器功能(1)
  13. 可汗学院公开课——统计学笔记Task1
  14. Spring Boot自定义starter必知必会条件
  15. 充电识别过程及QC2.0
  16. H型钢的尺寸的设计与使用(市场上可以轻松采购)
  17. [工具设置]使用NSIS制作安装包
  18. 算法:数据流中的中位数
  19. python pdf 转换成txt,csv,doc 及doc转换为pdf初级
  20. CAD保存高版本的dwg(网页版)

热门文章

  1. 使用C++定义QML类型qrc:/main.qml:5:1: module “io.qt.examples.BackEnd“ is not installed
  2. XTU oj 1309唯一的子串
  3. Git系列(五):Git Flow
  4. 计算机辅助工装设计的应用研究,计算机辅助工装设计与管理.PPT
  5. NIO空轮训出现的原理以及修复方案
  6. 如何解决缓存雪崩、击穿、穿透难题?
  7. 50名工程师支撑着一个10亿用户量的产品:成功因素之一是几乎不开会
  8. python的third party llibs
  9. 各国电源插头标准和电压标准
  10. 程序员兼职可以从什么平台接私活?