跳转至内容
  • 版块
  • 标签
  • 热门
  • 用户
  • 群组
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(Flatly)
  • 不使用皮肤
折叠

Odoo 中文社区

  1. 主页
  2. 版块
  3. Linux使用及技巧
  4. Linux每日一讲---Linux武器-kill

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

已定时 已固定 已锁定 已移动 Linux使用及技巧
2 帖子 1 发布者 11.6k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • digitalsatoriD 离线
    digitalsatoriD 离线
    digitalsatori 管理员
    写于 最后由 编辑
    #1

    ==此帖欢迎转载,转载请注明出处==
    [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]]

    【上海先安科技】(tony AT openerp.cn)

    1 条回复 最后回复
    0

    • 登录

    • 没有帐号? 注册

    • 登录或注册以进行搜索。
    • 第一个帖子
      最后一个帖子
    0
    • 版块
    • 标签
    • 热门
    • 用户
    • 群组