问题:

今天公司一台服务器 执行 ls / 命令时,系统卡死, ctrl+c 也不能结束,如下:

    root@pts/23 # ls /^C

此问题一般都是因为mount 对端服务失效,本地目录卡死造成

解决思路:

1. strace 命令跟踪,定位问题

首先使用 命令跟踪, 查看执行到哪一步卡死:

    root@pts/26 # strace  ls /.........lgetxattr("/MegaSAS.log", "system.posix_acl_default", 0x0, 0) = -1 ENODATA (No data available)lstat("/net", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0lgetxattr("/net", "security.selinux", 0x258f850, 255) = -1 EOPNOTSUPP (Operation not supported)lstat("/net", {st_mode=S_IFDIR|0755, st_size=0, ...}) = 0lgetxattr("/net", "system.posix_acl_access", 0x0, 0) = -1 EOPNOTSUPP (Operation not supported)lstat("/chaichuan_test", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0lgetxattr("/chaichuan_test", "security.selinux", 0x258f850, 255) = -1 ENODATA (No data available)lstat("/chaichuan_test", {st_mode=S_IFDIR|0755, st_size=4096, ...}) = 0lgetxattr("/chaichuan_test", "system.posix_acl_access", 0x0, 0) = -1 ENODATA (No data available)lgetxattr("/chaichuan_test", "system.posix_acl_default", 0x0, 0) = -1 ENODATA (No data available)lstat("/mnt", {st_mode=S_IFDIR|0775, st_size=4096, ...}) = 0lgetxattr("/mnt",

可以看到,命令执行到 /mnt这个目录时,停止不动了

也可以使用cat /proc/mounts 查看当前mount状态,发现确实有对mnt目录的记录

root@pts/31 # cat /proc/mounts ...192.168.10.150:/opt/ /mnt nfs4 ....

2. fuser 查看问题目录进程

问题定位/mnt目录,使用fuser 查看此目录占用进程

root@pts/30 # fuser -m /mnt
无法获取 /proc/4110/fd/255 的文件状态: 失效文件句柄
无法获取 /proc/9492/fd/255 的文件状态: 失效文件句柄
无法获取 /proc/29965/fd/255 的文件状态: 失效文件句柄

3.kill 解决

找到进程号直接kill

root@pts/30 # kill -9 4110root@pts/30 # kill -9 9492root@pts/30 # kill -9 29965

问题解决

总结:

strace命令是一个集诊断、调试、统计与一体的工具,我们可以使用strace对应用的系统调用和信号传递的跟踪结果来对应用进行分析,以达到解决问题或者是了解应用工作过程的目的, 具体使用可以查看帮助.

转载于:https://blog.51cto.com/chaichuan/2104093

使用ls / 命令卡死,或者df -h 查看卡死解决办法相关推荐

  1. Linux通过df -h查看磁盘空间满,但实际占用却没有那么大

    最近项目现场经常反馈说是磁盘满了,但实际占用不却没有那么多,导致无法操作,远程查看后,确实如此,现将相关解决方案记录如下: 查看现有硬盘情况 df -h 2. 再查看实际占用 // 切换到要目录下 c ...

  2. Linux系统卡死,只有鼠标能动,解决办法

    1.原因 可能由于CPU或内存占用过高,引起界面卡死,只有鼠标能动 2.解决办法 a.在命令行输入命令top top b.kill -9 PID kill -9 PID 把桌面的进程杀掉 比如你可能使 ...

  3. centos6 升级gcc / 无法识别的命令行选项“-std=gnu++1y”的解决办法

    在npm过程遇到:错误:无法识别的命令行选项"-std=gnu++1y"的解决办法 1.下载源文件,并安装: wget http://people.centos.org/tru/d ...

  4. Centos7- wget未找到命令,there are no enabled repos 解决办法

    转载自Centos7- wget未找到命令,there are no enabled repos 解决办法 简介: 解决:CentOS 7 wget -O /etc/yum.repos.d/CentO ...

  5. 重新启动postgre报错时,解决方案 ( 由备份文件占用空间太大造成 ) (linux 命令 df -h 查看磁盘空间)

    在这里使用了一个liunx下的命令查看磁盘空间 df: disk free  http://www.cnblogs.com/chenwenbiao/archive/2011/08/07/2129831 ...

  6. NFS导致df -h卡主解决

    NFS导致df -h无法使用解决 NFS服务意外断开,导致挂载的客户端"df -Th"命令无法使用,及挂载目录无法"cd""ls" 解决思路 ...

  7. 使用alipaySDK编译时找不到openssl/asn1.h文件的解决办法(初探)

    构建新的项目时,在重新引入alipaySDK进行编译之后出现了一个错误:找不到 #include<openssl/asn1.h> 这个文件 首先排除是SDK的问题以及代码问题.在重新翻看了 ...

  8. 如何查询oracle死锁,Oracle死锁查看和解决办法汇总

    由于生产的tomcat 经常有假死问题,困扰很久,最后发现有死锁,解决办法分享 1.查看死锁 1)用dba用户执行以下语句select username,lockwait,status,machine ...

  9. python django升级安装sqlite3后在python命令行还是显示旧版本的解决办法

    报错(SQLite 3.8.3 or later is required (found 3.7.17).)的解决办法: 参考链接:https://blog.csdn.net/weixin_441109 ...

最新文章

  1. 面完字节跳动,才知道自己的数据结构与算法有多薄弱...
  2. .net微软消息队列(msmq)简单案例
  3. with 关键字实现递归查询
  4. Caffe训练过程:test_iter test_interval等概念
  5. CentOs6.5下安装svn
  6. [Swift]检查API可用性
  7. 汇编调用C函数--利用堆栈传递参数
  8. AlphaGo Zero:从头开始学习
  9. 使用SQL查询分析器删除所有用户表
  10. pcs7服务器一直显示在同步,西门子PCS7OS系统时钟同步出现跳变的解决方法
  11. 【C语言】游戏管理系统简单设计
  12. Unity从Asset Store下载的资源安装包默认的保存位置及其修改
  13. MATLAB识别实验,基于MATLAB的人脸识别系统实验报告.pdf
  14. Java工程师成神之路 | 2020正式版
  15. Pollard’s rho 算法解大数质因子问题
  16. 从ELK/EFK到PLG – 在EKS中实现基于Promtail + Loki + Grafana容器日志解决方案
  17. [Windows] 迅雷 无修改 无限制 无视封锁
  18. 科技视界杂志科技视界杂志社科技视界编辑部2022年第21期目录
  19. 安卓蓝牙操作+蓝牙工具类
  20. 成品APP直播源码HLS直播(M3U8)回看和下载功能的实现

热门文章

  1. 关于知网学位论文检测系统的说明及修改指导意见
  2. EOS 智能合约如何调试?
  3. 外贸开发大客户时的注意点
  4. Vue项目打包部署总结
  5. android 颜色值16进制转换int类型;
  6. pandas只取文件中的某几列
  7. 网络发展 OSI TCP/IP基本知识
  8. 树莓派魔镜项目——笔记一 项目介绍和内容链接
  9. ubuntu如何添加新的PPA
  10. Deepin/Uos中添加PPA时显示找不到命令