Odoo中文社区可以通过以下两个域名访问:shine-it.net , odoo.net.cn

由于系统升迁的原因,本论坛部分较早期的内容存在格式和链接损坏失效的问题,并非本论坛系统本身的缺陷,望谅解

本社区没有维护任何QQ群讨论组,任何与本社区同名的QQ群讨论组的言论与本社区无关!

开发人员可以登录gitter讨论组: http://gitter.im/odoo-china/Talk, 需要github账号

如果您登录系统碰到问题,请在微信公众号留言:

Linux每日一讲---Linux武器-kill


  • 管理员

    ==此帖欢迎转载,转载请注明出处==
    [size=99px]善用Linux武器--kill[/size]

    今天来讨论一个很有攻击性的话题kill。也许出于人类动物攻击性的本能,人们总是对这个话题异常兴奋。(女性可能不在此列,毕竟她们来自于另外一个星球)所以为了保持冷静,建议大家和我一样准备一杯绿茶在手。茶是大众饮料中唯一能多次冲泡,反复体味的,好了,在学习kill绝技前,我们再来体味一下昨天关于进程及ps的介绍。

    其实在Linux的终端里运行的进程又可以被分为前台进程和后台进程。前台进程就像公司门前接待处的漂亮MM,后台进程就象公司阴暗角落里的老板。当您在终端里运行一个命令或开启一个程序时,终端要等到命令或程序运行完毕后,才能再被使用,就象要进入人家公司必须要和前台MM交涉完毕才可以。要终止前台进程的运行通常只要CTRL+C就可以了,那么要终止那些躲在后面施计的家伙要怎么办呢?这时候我们就要祭出kill法宝了。(事实上,Linux是可以支持人事调动的,就是把前台程序调到后台运行,这个以后介绍)

    kill到底是个什么东东呢?我们输入:

    kill -l

    1. SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL
    2. SIGTRAP 6) SIGABRT 7) SIGBUS 😎 SIGFPE
    3. SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2
    4. SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT
    5. SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
    6. SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU
    7. SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH
    8. SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN
    9. SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4
    10. SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
    11. SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12
    12. SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14
    13. SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10
    14. SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6
    15. SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
    16. SIGRTMAX-1 64) SIGRTMAX

    这些是kill可以发给系统处理的信号。所以kill是领导,由它发布命令,系统来执行。当然我们向来不能滥杀无辜,所以就要用到昨天介绍的鸟鸟的ps。

    ps aux
    [color=#cccccc][color=#000000][/color]
    [color=black]USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND[/color]
    [color=black]root 1 0.0 0.7 1096 472 ? S Sep10 0:03 init [3][/color]
    [color=black]root 2 0.0 0.0 0 0 ? SW Sep10 0:00 [kflushd][/color]
    [color=black]root 3 0.0 0.0 0 0 ? SW Sep10 0:00 [kpiod][/color]
    [color=black]root 4 0.0 0.0 0 0 ? SW Sep10 0:00 [kswapd][/color][/color]
    [color=#cccccc][color=black]root 5 99 50 2222 889 ? R [badguy][/color][/color]

    比如在上面我们看到了PID为5的这个叫badguy的坏鸟,它使用了我们99%的CPU,50%的内存,搞得我们CPU狂喘,风扇猛转,电脑速度爆慢。IT'S THE TIME FOR KILL, HEHEHE.

    kill 5

    kill badguy

    我们安静的结束了一场战斗,再ps一下,看,叫badguy的家伙不见了。其实kill就是让你能像做外科手术一样对系统进行维护,而不用在遇到问题时每一次都重新启动系统。下面列举一些kill的常用选项:
    kill -STOP [pid] 发送SIGSTOP (17,19,23)停止一个进程,而并不消灭这个进程。
    kill -CONT [pid] 发送SIGCONT (19,18,25)重新开始一个停止的进程。
    kill -KILL [pid] 发送SIGKILL (9)强迫进程立即停止,并且不实施清理操作。
    kill -9 -1 终止你拥有的全部进程。

    另外,还有很多kill的同门兄弟比如:killall, pkill, xkill。如果你工作在Xwindows下就是Linux的图形界面下,做个实验:
    启动一个应用程序,比如FireFox浏览器,然后打开终端。在终端里输入 xkill 。看你的鼠标箭头变成了什么?然后点一下你之前打开的程序窗口,怎么样了?酷吧!

    [color=#cccccc][color=black]善用kill武器做一个好杀手吧。我们明天就来讨论终端和shell吧,昨天就有人问起的吧。

    [/color][/color]

    [[i] 本帖最后由 digitalsatori 于 2007-9-3 10:36 编辑 [/i]]


Log in to reply