kill家族: kill: # 删除执行中的程序或工作 killall: # 使用进程的名称来杀死进程,使用此指令可以杀死一组同名进程 pkill: # 用于杀死一个进程,它会杀死指定名字的所有进程,类似于 killall 命令
kill
语法格式: 'kill <参数> <进程号>' 常用参数: -l: # 列出系统支持的信号(常用信号:1、9、15) -s: # 指定向进程发送的信号 -a: # 处理当前进程时不限制命令名和进程号的对应关系 -p: # 指定kill命令只打印相关进程的进程号,而不发送任何信号 命令实例: 1: KnowledgeIsPower:~ # kill -l [这会列出64个信号,kill默认是15信号(正常杀死一个进程),kill -1 pid号(重新加载进程),kill -9 pid号(这个比较粗暴,强制杀死指定pid号的进程)] 2: KnowledgeIsPower:~ # ps -ef | grep sshd root 1425 1 0 06:54 ? 00:00:00 /usr/sbin/sshd -D root 1561 1425 0 06:54 ? 00:00:06 sshd: root@pts/0 root 1564 1425 0 06:54 ? 00:00:00 sshd: root@notty root 10186 1567 0 07:18 pts/0 00:00:00 grep --color=auto sshd KnowledgeIsPower:~ # kill 1561 # 这个时候,我的ssh远程连接就被断开了 区别: '使用kill命令杀死进程,需要先用ps或者top等命令,查找进程所在的pid号才可以'
killall
语法格式: killall <参数> 常用参数: -l: # 列出系统支持的信号(和kill一样) -p: # 杀死进程所属的进程组 -i: # 交互式杀死进程,杀死进程前需要进行确认 -u: # 杀死指定用户的进程 命令实例: KnowledgeIsPower:~ # killall -9 sshd # 同样的,我的ssh远程连接再次被我咔嚓了 区别: 1: killall比kill方便的地方在于,不需要pid号,只需要有服务的名称,就可以杀死进程 2: suse12会自带killall这个命令;centos则需要安装psmisc才会有killall这个命令
pkill
语法格式: pkill <参数> 命令实例: KnowledgeIsPower:~ # pkill sshd # 同样的,我的ssh远程连接再次被我咔嚓了 区别: 'pkill 和 killall 差不多,都是杀死和指定服务名称相关的进程'
跑路小技巧
'kill命令只能杀死单一的进程,并且依赖进程pid号' 'killall和pkill都是通过服务名,杀死和服务相关的所有进程,所以,这两个命令需要慎用,在你知道会带来怎么样后果的情况下,才可以使用,不然,自己怎么凉的都不知道,多难受'