Linux 排查进程挂起

  • 问题描述
  • lockf() 函数说明
  • 命令 1 strace -p [pid] 进行跟踪
  • 命令2 lsof -p [pid] 进行查看
  • 解决办法

问题描述

 Linux 系统下;  进程突然挂起, 经过日志调试和跟踪,最后定位为 A进程进行日志打印时,fopen() 打开文件后,  进行了lockf(iNum,F_LOCK,00) 操作, 使用文件结束后-且没有 lockf( iNum, F_ULOCK, 00 ) ;  B进程 对相同文件进行读写操作时, 就会在fopen时 挂起;

需要kill A进程之后, B进程才会正常继续往下运行

lockf() 函数说明

#include <unistd.h>

int lockf(int fd, int cmd, off_t len);

fd为通过open返回的打开文件描述符。

cmd的取值为:

F_LOCK:给文件互斥加锁,若文件以被加锁,则会一直阻塞到锁被释放。

F_TLOCK:同F_LOCK,但若文件已被加锁,不会阻塞,而回返回错误。

F_ULOCK:解锁。

F_TEST:测试文件是否被上锁,若文件没被上锁则返回0,否则返回-1。

len:为从文件当前位置的起始要锁住的长度。

通过函数参数的功能,可以看出lockf只支持排他锁,不支持共享锁。

命令 1 strace -p [pid] 进行跟踪

可以通过该命令 ,跟踪程序的执行情况 ,再什么地方挂起;

命令2 lsof -p [pid] 进行查看

返回: COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME

如果是 fopen–打开文件,则文件大小 显示在SIZE这一列;

解决办法

排查程序中 对于文件lockf() 锁定后,写完日志后 ,需要进行lockf() 进行解锁操作 ;

Linux 排查进程挂起【板砖~】相关推荐

  1. linux排查进程退出原因面试,linux面试中经常会遇到的问题

    Linux 面试题答案解析 1.绝对路径用什么符号表示?当前目录.上层目录用什么表示?主目录用什么表示? 切换目录用什么命令? 答案: 绝对路径: 如/etc/init.d 当前目录和上层目录: ./ ...

  2. linux 让暂停的进程恢复,Linux 下进程的挂起和恢复命令

    本文给大家介绍进程的挂起及恢复命令,具体内容如下所示: #ctrl+z:挂起,程序放到后台,程序没有结束. #jobs:查看被挂起的程序工作号 恢复进程执行时,有两种选择:fg命令将挂起的作业放回到前 ...

  3. Linux排查哪个进程和IP在占用网速

    Linux排查哪个进程在占用网速 使用NetHogs定位哪个进程在占用流量 安装NetHogs 查看进程流量 显示界面说明 使用iftop定位哪个IP在占用流量 iftop基本用法 查看哪个连接占用流 ...

  4. linux write引起进程挂起,Linux设备驱动中的阻塞与非阻塞总结

    Linux设备驱动中的阻塞与非阻塞总结 阻塞操作是指,在执行设备操作时,若不能获得资源,则进程挂起直到满足可操作的条件再进行操作. 非阻塞操作的进程在不能进行设备操作时,并不挂起.被挂起的进程进入sl ...

  5. <Linux>进程概念

    文章目录 一.什么是进程 1.进程概念 2.进程描述 – PCB 3.task_struct内容分类 二.进程的基本操作 1.查看进程 2.结束进程 3.通过系统调用获取进程标示符 4.通过系统调用创 ...

  6. Linux下进程通信知识点学习笔记(一)

    4种主要事件导致进程创建: 系统的初始化: 执行了正在运行的进程所调用的进程创建系统调用: 用户请求创建一个进程: 一个批处理作业的初始化: 进程的终止: 正常退出: 出错退: 严重错误: 被其他进程 ...

  7. linux一个进程通知另外一个进程,Linux进程通信学习笔记

    一.为什么需要进程通信 1)数据传输 一个进程需要把它的数据发送给另一个进程. 2)资源共享 多个进程之间共享同样的资源. 3)通知事件 一个进程向另外一个进程发送消息,通知它发生了某事件. 4)进程 ...

  8. Linux 让进程在后台可靠运行的几种方法

    场景 思考三个问题: 想让进程在断开连接后依然保持运行? 如果该进程已经开始运行了该如何补救? 如果有大量这类需求如何简化操作? 我们经常会碰到这样的问题,用 telnet/ssh 登录了远程的 Li ...

  9. linux 进程管理 ppt,linux操作系统-进程管理和打印管理.ppt

    <linux操作系统-进程管理和打印管理.ppt>由会员分享,可在线阅读,更多相关<linux操作系统-进程管理和打印管理.ppt(25页珍藏版)>请在装配图网上搜索. 1.进 ...

最新文章

  1. 没有场景,不做单点技术输出,360数科如何做金融科技的最佳实践?
  2. 技嘉G31主板学习笔记
  3. 恒驰机器人_机器人如何造恒驰?探秘最牛汽车生产基地
  4. 杭电oj 1002 c++版本
  5. ELV局部视图与差分隐私【敏感度到底怎么理解】【上】
  6. css如何让a标签,根据输入的内容长度调整宽度,宽度自适应,那位大仙帮帮忙...
  7. java矩形类_Java定义矩形类
  8. mscaffe 训练minist数据
  9. iOS字体适配方法总结
  10. 北京朝阳行政区划(朝阳区街道行政区划) 用于shp数据转为geojson格式作为ECharts地图
  11. ubuntu code::blocks 汉化(附汉化包)
  12. c#程序设计实训报告心得体会_C#.NET程序设计实验一实验报告
  13. Android 官方推荐 : DialogFragment 创建对话框
  14. oracle 中的.dbf,郑怡:请问各位大师:oracle中dbf文件是什么文件?
  15. 利用R语言进行探索性数据分析(EDA)
  16. 王选-“从Dijkstra谈帅才的洞察力”[转]
  17. 测试开发是什么?为什么现在那么多公司都要招聘测试开发?
  18. 在IOS设备上调试(真机调试)
  19. oracle中部门工资降序排列,oracle面试题整理二(10级学员 乔宇整理)
  20. 4.驱动框架入门之LED

热门文章

  1. matlab在凸轮中的应用,用matlab绘制凸轮教程(详细).doc
  2. UML系列文章(14)---对象图
  3. 求字符串长度【三种解题思路】
  4. 零知识证明的潜在价值
  5. css中!important的用法
  6. android MD5校验码的生成与算法实现
  7. Pod 一直处于 Pending 状态
  8. 我的第一个win32窗口程序------------记录
  9. 智力题------天平称球问题
  10. Crayon Syntax Highlighter插件修改成中文