四时宝库

程序员的知识宝库

Linux命令学习——kill命令(linux kill-9)


Linux kill 命令用于停止执行中的程序或任务

1.命令格式

kill [options] ...[processid]...

2.命令参数

  • -l 信号则使用“-l”参数会列出全部的信号名称
  • -a 当处理当前进程时,不限制命令名和进程号的对应关系
  • -p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
  • -s 指定发送信号
  • -u 指定用户

kill命令可以带信号号码选项。如果没有信号号码,kill命令就会发出终止信号(15),这个信号可以被进程捕获,使得进程在退出之前可以清理并释放资源。也可以用kill向进程发送特定的信号。

可以向多个进程发信号或终止它们。

应注意,信号使进程强行终止时。有可能会发生数据丢失或者终端无法恢复到正常状态。因此在发送信号时必须小心,只有在万不得已时,才用kill信号(9)

3.使用实例

1)查看所有支持信号

命令

kill -l

执行后输出

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

只有第9种信号(SIGKILL)才可以无条件终止进程

  • HUP 1 终端断线
  • INT 2 中断(同 Ctrl + C)
  • QUIT 3 退出(同 Ctrl + \)
  • TERM 15 终止
  • KILL 9 强制终止
  • CONT 18 继续(与STOP相反, fg/bg命令)
  • STOP 19 暂停(同 Ctrl + Z)

2)获取指定信号的数值

命令

kill -l SIGKILL
kill -l TERM

执行结果输出为



3)杀掉进程

在ubuntu中使用vim 打开一个文档 ,再开启一个终端来操作以下命令

然后使用ps 命令来查找geidt 进行

使用kill 杀掉此进程

vim a1.txt
#另外一个终端中操作
ps -ef | grep vim
kill 2847(实际运行的id号)

输出内容

root        2847    2099  0 23:32 pts/0    00:00:00 vim a1.txt
root        2872    2862  0 23:33 pts/1    00:00:00 grep --color=auto vim

从上述中可以看出,vim 进程的id号为2847 使用kill 2847 执行杀掉进程

执行完后,再执行一次kill 2847后输出

bash: kill: (2847) - No such process

4)彻底杀死进程

在ubuntu中使用vim 打开一个文档 ,再开启一个终端来操作以下命令

然后使用ps 命令来查找geidt 进行

使用kill 杀掉此进程

vim a1.txt
#另外一个终端中操作
ps -ef | grep vim
kill  -9 2882(实际运行的id号)

输出内容

root        2882    2099  0 23:37 pts/0    00:00:00 vim a1.txt
root        2885    2862  0 23:37 pts/1    00:00:00 grep --color=auto vim

从上述中可以看出,vim 进程的id号为2882 使用 kill -9 2882 执行杀掉进程

KILL 9 强制终止

5)杀死指定用户所有进程

命令 (杀死用户为user的进程)

kill -u user


6)init进程

命令

先查找init进程的id号

直接执行强制杀掉init进程

ps -ef | grep init
kill -9 1
root@ubuntu:/test# ps -ef | grep init
root           1       0  0 18:15 ?        00:00:03 /sbin/init auto noprompt
root        2893    2862  0 23:41 pts/1    00:00:00 grep --color=auto init
root@ubuntu:/test# kill -9 1
root@ubuntu:/test# ps -ef | grep init
root           1       0  0 18:15 ?        00:00:03 /sbin/init auto noprompt
root        2895    2862  0 23:42 pts/1    00:00:00 grep --color=auto init
root@ubuntu:/test# 

init进程是杀不掉的

发表评论:

控制面板
您好,欢迎到访网站!
  查看权限
网站分类
最新留言
    友情链接