目录
1、进入TTY终端字符界面(相当于Windows下的安全模式)
如何解决Ubuntu假死机或进程被占用
今天,有同事将Ubuntu“搞死了”,3种解决方法及其步骤:
一、Ubuntu假死机
1、进入TTY终端字符界面(相当于Windows下的安全模式)
1.1、按Ctrl+Alt+F1 : TTY终端字符界面
TTY终端字符界面,即非GUI界面:默认为gdm3界面,,输入用户名和密码,重新登录进入TTY终端字符界面。
1.2、打开【终端】:执行top命令
~$ top
看看是哪些个句柄可能造成了“假死机”!【进程】那列即PID即进程的id
PID : 进程id
USER : 进程所有者
PR : 进程优先级
NI : nice值。负值表示高优先级,正值表示低优先级
VIRT : 进程使用的虚拟内存总量,单位kb。VIRT=SWAP+RES
RES : 进程使用的、未被换出的物理内存大小,单位kb。RES=CODE+DATA
SHR : 共享内存大小,单位kb
S : 进程状态。D=不可中断的睡眠状态 R=运行 S=睡眠 T=跟踪/停止 Z=僵尸进程
%CPU : 上次更新到现在的CPU时间占用百分比
%MEM : 进程使用的物理内存百分比
TIME+ : 进程使用的CPU时间总计,单位1/100秒
COMMAND : 进程名称(命令名/命令行)
1.3、用kill命令结束掉这些“僵尸进程”
~$ (按Ctrl + C) :中断命令执行返回到终端命令等待状态。然后:
~$ kill PID
比如:~$ kill 4759 (注意:不同于MSWindows,严格区分大小写.如上图的进程即PID)
2、然后进入终端执行命令
2.1、 注销桌面重新登录:
sudo pkill Xorg
或
3、用内核方法
3.1、 著名的reisub魔法键组合键:
Alt + Print Screen键 + r或e或i或s或u或b(reisub倒序即单词:busier,英语"更忙"之意:busy"忙")。
r : unraw 将键盘的控制权从X-Server拿回来
e : terminate 给所有进程发送 sigterm 信号,让其终止执行
i : kill 给所有进程发送 sigkill 信号,立即强制关闭它们
s : sync 将所有数据通过内核线程同步到磁盘
u : unmount 让所有分区挂载为只读模式
b : reboot 重启ubuntu操作系统-----------------------------------------------------------------------------------------------------------
好处:不会丢失数据!
官方关于魔法键的更多: Linux Magic System Request Key Hacks — The Linux Kernel documentation
二、Ubuntu进程被占用
2.1、系统提示
用Delphi调试器编译Ubuntu进程时,提示:
意思就是说,这个程序的进程处于打开状态、尚未销毁。
因为:是你在调试程序时,程序异常退出,退出时未能得到释放。
2.2、解决方法
2.2.1、步骤1-进入调试路径
若路径中有空格转义符:必须在空格前加“斜杠”符号:\ ,即:
2.2.2、步骤2-列出进程
列表进程:
列表具体某个进程并查看到你进程的ID为3195:
管理员身份杀死该进程: