日期:2014-05-16  浏览次数:20787 次

命令行的故障排除:给linux初学者的建议
桌面冻结该怎么办?
在使图形环境更稳定的过程中,复合窗口管理器是一个巨大的进步。但是,有时候你们漂亮的linux图形化桌面锁起来了,那么你会怎么办?你所要做的是通过ctrl + alt + f2进入到一个控制台。这个控制台和你的图形环境是互相独立的。
接下来你这么做。假如你知道是什么锁住了你的桌面,你可以找到它的进程号并杀死它。比如,当我在我的海豚图形文件管理器中连接到一个远端网络共享时,网络连接中断了,海豚图形文件管理器锁住了我整个桌面。所以我进入控制台模式,运行下列命令来找到它的进程号:
$ ps aux | grep dolphin 
carla 9218 ?  Sl  0:00 /usr/bin/dolphin    
     --icon system-file-manager -caption Dolphin
这表明carla拥有这个进程,她能够使用下面的命令来杀死这个进程:
$ kill 9218
假如root或者不同的使用者拥有这个进程,那就使用命令:sudo kill 9218
现在,在你的键盘上按下向上箭头按键去回到上一条命令,按下Enter键去重新运行,看我们的杀死命令是否有效,是否杀死了那个进程。如果,没有杀死,那就使用更霸道的命令:
$ kill -9 9218
-9发送SIGKILL信号,这个信号是不能被忽略的,是直接送到内核的(个人理解nuclear option)。
假如你发现一个失控进程已近催生了子进程。为了防止你所杀死的子进程再次由它产生,你需要去杀死父进程,因为它产生子进程,这样可以防止它再产生子进程。(假如你不熟悉这些术语,那么你有同伴了,我也不熟悉这些术语(原作者的观点))。添加-f选项来在树状图中看父进程和子进程的关系,就像plex媒体服务器这个简短的例子:
root 1776 /bin/sh -e /proc/self/fd/9 
plex 1803   \_ /bin/sh /usr/sbin/start_pms 
plex 1804     \_ ./Plex Media Server 
plex 1970     \_Plex Plug-in [com.plexapp.system] 
plex 2645     \_ /usr/lib/plexmediaserver 
plex 2690     \_ Plex Plug-in