首页 > 系统相关 >Linux卡死的解决方法记录

Linux卡死的解决方法记录

时间:2023-11-11 12:01:40浏览次数:78  
标签:tty 记录 系统 仿真器 SysRq Linux 进程 卡死

本人在使用Linux时突然卡死,检索解决方法及相关知识后总结进行记录。

解决方法

1. 尝试进入tty

若Linux在桌面中卡死,可以尝试按下快捷键组合 ctrl+alt+F3 进入tty3 (类似的可以按下快捷键组合 ctrl+alt+F4 进入 tty4 ,可扩展到tty6),在tty中先通过 top 命令获取高cpu占用进程,再通过 pkill 加 进程名,或者 kill -9 加 进程名 的方式关闭或杀死死锁进程。最后按下快捷键组合 ctrl+alt+F1或者 ctrl+alt+F2 返回桌面,因桌面系统不同此处快捷键并不相同。

2. 若上述步骤无效,使用SysRq键(即Prt Scr键)

使用此方法可以实现Linux系统的安全重启,但是若使用此方法操作不当可能会造成系统当前部分数据丢失。

首先检查SysRq是否开启,在命令行中输入cat /proc/sys/kernel/sysrq,若输出为0,则还未开启,若大于1则部分功能可用。可以通过 sudo sysctl -w kernel.sysrq=1命令开启SysRq,由于以上操作只在本次开机运行时有效,为保证下次开机SysRq服务自动启用,需编辑 /etc/sysctl.conf,添加内容kernel.sysrq=1

同时按下ctrl键和alt键,在执行完下述步骤之前不要松开。

先按下SysRq键,再依次按下R键1秒, E键30秒, I键10秒, S键5秒, U键5秒, B键。做完此步骤后系统就会重启。注意,不要快速地按下这六个键。快速地按下这些键可能会造成系统当前部分数据丢失。

相关内容

上述内容可以解决此问题,此部分内容为扩展内容。

tty

tty是电传打字机的缩写,其出现于19世纪30年代。电传打字机和普通打字机(typewriter)的区别在于,电传打字机连接到通信设备,直接发送输入的消息。在Linux中,tty通过TTY驱动程序在内核级别实现进程管理、行编辑和会话管理。每当在系统中启动一个终端仿真器(桌面系统中的终端软件)或使用任何类型的shell时,它都会与虚拟tty(也被称为伪TTY(pseudo-TTY),即PTY)进行交互。

tty、终端仿真器和shell:tty直接与内核进行交互,而终端仿真器与虚拟tty进行交互。shell是命令行解释器,执行用户输入的命令并返回结果。tty或终端仿真器从用户这里接收输入,由Shell解析后交给操作系统内核去执行,之后把执行结果返回给tty或者终端仿真器。最后由tty或者终端仿真器把Shell返回的结果展示给用户。

SysRq

大多数键盘的SysRq和PrtSc键是复用的。SysRq 经常被称为 Magic System Request,它被定义为一系列按键组合。当系统因为某种原因已经停止对大部分正常服务的响应,但是系统仍然可以响应键盘的按键中断请求。通过它,不但可以在保证磁盘数据安全的情况下重启,还可以排除和诊断系统故障。在检查当前SysRq值时,可能会遇到一些特殊的值,如176。176=128+32+16,故其代表着目前启用了128、32、16代号对应的功能。各个代号对应的功能如下所示:

 

在按下SysRq后,常见的按键组合有:
1. R-E-I-S-U-B,该组合基本等价于reboot命令,会依次停止系统上运行的进程,回写磁盘缓冲区,再安全的重启系统。由于依次停止系统上运行的进程,回写磁盘缓冲区这一过程需要一定的时间,所以按完一个键后要等待一段时间后再按下一个键。
2. M-P-T-W,该组合可以查看当前系统的内存使用情况,当前CPU寄存器的状态,进程运行状态,以及所有CPU及寄存器的状态。通过这些信息,可以对挂起的原因做粗略的分析,进行针对性处理。即使不能找到原因并成功恢复,也将会为以后的故障分析留下宝贵的证据。

按下SysRq后,各个键的功能如下:

 

K、F,它们可能会解决系统假死,恢复系统挂起。有时候系统的死机仅仅是因为个别进程过分消耗cpu或内存等系统资源所引发的。使用K可以结束与当前控制台相关的全部进程,使用F可以利用OOM-Killer选取一个进程然后结束之。这对于内存被耗尽引起的挂起可以起更加准确的作用,但是如果是非内存问题引起的挂起,F可能会误杀,引起一些不必要的麻烦。

E和I都会结束除init以外的所有进程,理论上可以恢复系统挂起。但是所有的服务都已中止,需手工干预才能恢复正常。推荐继续完成S-U-B操作进行安全重启,这样可以保证启动所有服务而不发生遗漏。



本文仅作为学习笔记,记录学习中遇到的问题及解决方法。由于本人水平有限,有些内容理解可能并不到位,若发现错误请在评论区留言,以便及时更正,不胜感激。

参考文章

1. Ubuntu桌面卡死解决办法 风与沙的较量丶

2. Linux 黑话解释:TTY 是什么? | Linux 中国 Linux 中国

3. 什么是 Linux 上的 TTY? (以及如何使用 tty 命令) 炎黄子孙,龙的传人

4. 命令行界面、终端、Shell、TTY,傻傻分不清楚? 企鹅号-SegmentFault

5. linux 中的 SysRq 魔术键 RQsir

6. SysRq使用详解 渊蓝之蓝

7. linux 下的 SysRq 键 文江博客

8. Linux内核基础篇——神奇的系统请求键SysRq Vincent

9. 利用 SysRq 键排除和诊断系统故障 1658775

10. linux 强制重启 sysrq,在Linux上,如何启用所有SysRq功能 如何科学养鱼

11. Documentation for /proc/sys/kernel/ kernel.org

12. Linux Magic System Request Key Hacks kernel.org

标签:tty,记录,系统,仿真器,SysRq,Linux,进程,卡死
From: https://www.cnblogs.com/Yunxiaoyvji/p/17825742.html

相关文章

  • Linux 内核 6.6 版本莅临,带来诸多变化
    导读笔记本的支持得到了提升,服务器性能得到了改进,更多内容一一揭晓。又到了迎接 Linux 内核新版本发布的时刻!Linux内核6.6的发布,是一次大规模更新,针对各类笔记本、网络硬件、处理器等提供了大量全方位的改良。LinusTorvalds 表示:各种各样的修复散布各处,除了针......
  • 转 问题解决:记录一次Linux服务器根目录突然爆满
    一般跟目录满了,可以重点关注/var这个目录 一、出问题了过了个双休来到公司,同时发现Linux终端的服务器状态中根目录空间直接爆满100%,周五走之前根目录仅仅使用了59%,同时项目服务的后台不停的有日志打印,而且测试的小伙伴说系统登录不上去了。下面记录一下个人排查并解决这个问题......
  • 性能测试复习准备——linux环境下安装jdk8
     先在根目录下创建目录: /soft/jdk8  ——用于放上传进来的软件包;       然后通过左边的上传按钮,把包上传到 /soft/jdk8下面; 然后在根目录下面创建/evir/jdk8目录,用户放解压后的软件包;tar-zxvffile.tar.gz-C/path/to/destination   tar......
  • Linux后台进程管理以及ctrl+z(挂起)、ctrl+c(中断)、ctrl+\(退出)和ctrl+d(EOF)介绍
    一、后台进程管理命令fg、bg、jobs、&、ctrl+z、ctrl+c、ctrl+\、ctrl+d1、&加在一个命令的最后,可以把这个命令放到后台执行,如firefox&, 2、ctrl+z可以将一个正在前台执行的命令放到后台,并且处于暂停状态,不可执行 3、jobs查看当前有多少在后台运行的......
  • Linux常用命令——tar文件的压缩与解压缩
    tar   选项   包名    文件名tar本身没有压缩功能,只有打包功能,但是tar可以调用压缩工具;以下是常用命令:-c  创建归档文件-v  显示过程-x  展开归档文件-f  操作归档文件-C  指定解压路径-z  调用gzip压缩工具-j  调用bzip2压缩工具-J......
  • USACO作题记录1
    更好的访问[[2023年11月10日总结]]这一天的题目。[USACO22OPEN]AlchemyBlink。二分答案。倒着建图,是一个dag。验证的方法感觉类似[NOIP2020]排水系统。但是要注意中间判断一下往下传的多余量有没有超过总金属数。不然容易指数级增长爆掉。这道题写的时候降智了,还搞了一......
  • Linux虚拟化安装相关信息
    此处内容均是关于使用VMwareWorkstation安装Linux操作系统的相关知识:CentOS镜像(*.iso):可以从阿里云提供的各种镜像列表下载:https://developer.aliyun.com/mirror/下的OS镜像,根据弹窗选择对应的镜像类型和版本,根据下载链接下载Markdown语法:···上述为"``` ",表示 ......
  • Linux软件安装(二)
    1、权限:允许⽤户对资源所执⾏的操作。2、在Linux中所有的资源都视为⽂件。3、⽂件的权限包括:读(read),写(write),执⾏(execute)。4、通过ll查看⽂件的完整信息(共有9段)-rwxrw-r--.1rootroot  6611⽉414:40a.txt⽂件的权限说明。⽂件的结点(node)个数......
  • Linux软件包(源码包和二进制包)
    Linux下的软件包众多,且几乎都是经GPL授权、免费开源(无偿公开源代码)的。这意味着如果你具备修改软件源代码的能力,只要你愿意,可以随意修改。GPL,全称GeneralPublicLicense,中文名称“通用性公开许可证”,简单理解GPL就是一个保护软件自由的一个协议,经GPL协议授权的软件必须开源......
  • Linux 中 安装perl模块 以及 确认
     001、系统信息  002、安装CPAN  003、以JSON为例,在未安装状态下查看  004、利用cpan-iJSON安装该模块  005、查看JSON安装状态  参考:01、https://www.onitroad.com/jc/linux/faq/find-out-what-perl-modules-already-installed-on-my-system.html......