## kill命令 kill命令用来删除执行中的程序或工作。kill可将指定的信息送至程序。预设的信息为SIGTERM(15),可将指定程序终止。若仍无法终止该程序,可使用SIGKILL(9)信息尝试强制删除程序。 程序或工作的编号可利用ps指令或job指令查看。 ### 语法 kill(选项)(参数) ### 选项 -a:当处理当前进程时,不限制命令名和进程号的对应关系; -l <信息编号>:若不加<信息编号>选项,则-l参数会列出全部的信息名称; -p:指定kill 命令只打印相关进程的进程号,而不发送任何信号; -s <信息名称或编号>:指定要送出的信息; -u:指定用户。 参数 进程或作业识别号:指定要删除的进程或作业。 实例 列出所有信号名称: ### 信号 ``` machuangdeMacBook-Pro:~ machuang$ kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGEMT 8) SIGFPE 9) SIGKILL 10) SIGBUS 11) SIGSEGV 12) SIGSYS 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGURG 17) SIGSTOP 18) SIGTSTP 19) SIGCONT 20) SIGCHLD 21) SIGTTIN 22) SIGTTOU 23) SIGIO 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGINFO 30) SIGUSR1 31) SIGUSR2 ``` 只有第9种信号(SIGKILL)才可以无条件终止进程,其他信号进程都有权利忽略,下面是常用的信号: ``` HUP 1 终端断线 INT 2 中断(同 Ctrl + C) QUIT 3 退出(同 Ctrl + \) TERM 15 终止 KILL 9 强制终止 CONT 18 继续(与STOP相反, fg/bg命令) STOP 19 暂停(同 Ctrl + Z) ``` 先用ps查找进程,然后用kill杀掉或重启: ``` ps -ef | grep vim root 3268 2884 0 16:21 pts/1 00:00:00 vim install.log root 3370 2822 0 16:21 pts/0 00:00:00 grep vim kill -1 2235 #重启进程 kill -9 2236 #墙纸杀死进程 ``` ## killall命令  Linux系统中的killall命令用于杀死指定名字的进程(kill processes by name)。我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀死的进程,我们还需要在之前使用ps等命令再配合grep来查找进程,而killall把这两个过程合二为一,是一个很好用的命令。 ### 命令格式 killall[参数][进程名] ### 命令参数 -Z 只杀死拥有scontext 的进程 -e 要求匹配进程名称 -I 忽略小写 -g 杀死进程组而不是进程 -i 交互模式,杀死进程前先询问用户 -l 列出所有的已知信号名称 -q 不输出警告信息 -s 发送指定的信号 -v 报告信号是否成功发送 -w 等待进程死亡 --help 显示帮助信息 --version 显示版本显示 ### 范例 1. 杀死所有同名进程 killall nginx killall -9 bash 2.交互杀死进程 ps aux |grep httpd #匹配httpd killall -I -9 httpd #删前询问是否确认删除 3. 按照终端号进行删除 踢掉linux登陆的其他用户 ``` [root@xkht-test ~]# w 21:53:52 up 35 days, 5:06, 2 users, load average: 0.22, 0.32, 0.34 USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT root pts/0 122.71.227.215 21:49 0.00s 0.02s 0.00s w root pts/2 122.71.227.215 21:49 16.00s 0.01s 0.01s -bash [root@xkht-test ~]# pkill -9 -t pts/2 ``` 如果两个都是超级用户,先下手为强, 后下手遭殃。 ## pkill命令 pkill命令可以按照进程名杀死进程。 pkill和killall应用方法差不多,也是直接杀死运行中的程序;如果您想杀掉单个进程,请用kill来杀掉。 ``` pgrep -l gaim 2979 gaim pkill gaim ``` 也就是说:kill对应的是PID,pkill对应的是command。