Linux/结束异常程序

程序僵死

编辑

在linux中,如果有某一个程序卡死,可以打开系统监视器。在里面结束这个程序,这个跟windows的任务管理器有点像。它在系统->系统管理->系统监视器。

但是,有些程序并不在那里显示.这时可以打开终端,输入以下命令.

ps -e

这个命令可以列出所有正在运行的程序.例如

7868 ?        00:00:00 pppd
7905 ?        00:00:15 firefox
7934 ?        00:00:00 gnome-terminal
7937 ?        00:00:00 gnome-pty-helpe

找到你要杀死的程序,在对应行的第一列,是这个程序的PID,如果要杀死firefox,可以用下面命令

sudo kill 7905

7905就是PID号,当然要跟据实际改一下.

还有就是,同一个程序每次运行的PID是不一样的.所以每次杀死一个程序前都得查PID号.

如果你已经知道进程名,你也可以直接运行killall命令。 如:

killall gnome-terminal

死机

编辑

在Linux中死机不是完全的死机,你仍然可以进入后端的命令行模式.按Ctrl+Alt+F1就会进入一个命令行,在这个命令行中你需要重新登陆一下,输入你的用户名,再输密码,登陆成功后,再用命令

ps -e

找出最后出问题程序的PID

sudo kill 7905

这个与上面介绍过的一样.

但是命令行下,屏幕的显示范围有限,如果你要找的程序被挤到屏幕外去了,可以把输出内容重定向到less或者more程序(less比more增加了向前回滚的功能,但不是每一个发行版都包含less)

ps -e | less

这样就可以用键盘上的上下箭头滚动屏幕了。

也可以将输出重定向到一个文件:

ps -e > foo
vi foo

退出vi,先按Esc键,然后输入“:q”回车,就可以了。vi是在命令行下的文本编辑器,具本可以看关于文本文档的介绍。

在杀死程序后,要回到图形界面按Ctrl+Alt+F7。

如果你有足够的联想能力和探索精神,可能会想试试其它的Ctrl+Alt+Fn,试试吧。


如果系统已经彻底死机到Ctrl+Alt+F1都无法打开的地步了,就请试试:

按住Alt+SysRq(SysRq在主键盘和小键盘中间一栏的按键内),然后一直保持着Alt键不放的情况下(SysRq键可以放开),依次按下REISUB六个键(分别表示:重置键盘、结束进程、强行杀死进程、同步硬盘的缓存数据、重新挂载硬盘为只读模式、强行重启)。这种方法被成为 Magic SysRq

EXT4格式造成的死机

编辑

EXT4格式是一种linux磁盘格式,应该说是一个不成熟的磁盘格式,所以在安装ubutu的时候你会发现,EXT4排在EXT3的下面.

在EXT4格式磁盘里,移动大量文件时会造成死机,而且这种死机是完全的死机,没有解决方法,只能强行关机,但这样会造成数据丢失.

但是网上介绍,EXT4格式在访问速度方面还是有很大提高的.所以你如果你的home目录在一个独立的分区中的话,可以把根分区设为EXT4格式,把home分区设为EXT3格式.

因为日常的文件操作都是在home分区进行的.但是在一次安装大量应用程序时,最好不要进行其它操作,因为这是在根分区中进行的。