Linux系统之kill命令的基本使用

举报
江湖有缘 发表于 2023/06/16 16:43:36 2023/06/16
【摘要】 Linux系统之kill命令的基本使用

@TOC

一、kill命令介绍

1. kill命令简介

在 Linux 中,kill 命令用于发送信号给进程。默认情况下,kill 命令将发送 TERM 信号,即请求进程正常终止。

2. kill命令的使用场景

kill命令用于终止一个正在运行的进程。下面是使用场景:

  • 进程无响应:当一个进程无响应时,可以使用kill命令将其强制终止。

  • 进程占用资源过多:如果一个进程占用了大量资源,导致系统变慢或者出现其他问题,可以使用kill命令终止它。

  • 进程出现错误:如果一个进程出现了错误,无法正常运行,需要使用kill命令终止它。

  • 进程冲突:如果多个进程之间发生冲突,可以使用kill命令终止其中一个进程,以解决冲突问题。

  • 系统关闭:当需要关闭或重启系统时,可以使用kill命令终止所有运行中的进程,以确保系统安全关闭。

3. kill命令使用注意事项

  • 慎用:kill命令会直接终止进程,因此一定要慎重使用,以免意外终止关键进程导致系统崩溃。

  • 选择正确的进程:使用kill命令时一定要选择正确的进程,否则可能会误杀其他进程或者系统进程。

  • 使用信号:kill命令可以使用不同的信号来终止进程,如果信号不正确可能会导致进程无法正常终止。

  • 尝试优雅关闭:在使用kill命令前,可以尝试发送SIGTERM信号来优雅地关闭进程,如果进程无法正常关闭再使用kill命令强制终止。

  • 确认进程状态:在使用kill命令前,可以使用ps命令确认目标进程的状态,避免误杀。

  • 检查权限:kill命令需要root权限才能杀死其他用户的进程,因此需要确保自己有足够的权限。

二、kill命令的使用帮助

1. 查看kill命令帮助信息

在Linux的命令终端,使用man kill查询kill命令的帮助信息。

man kill

在这里插入图片描述

2. kill命令帮助解释

kill命令的帮助解释

kill [-s sigspec | -n signum | -sigspec] pid | jobspec ...
kill -l [sigspec]

选项——

-s signal:指定要发送的信号,默认为 TERM 信号
-l:列出所有可用的信号
-p pid:指定要发送信号的进程 ID
-u user:指定要发送信号的用户名称
-n sig    信号名称对应的数字。
-L        等价于-l选项。


参数
pid:进程ID
jobspec:作业标识符

三、kill常用的信号

1. 列出所有的信号

列出所有的信号的名称

[root@docker ~]# 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	

2.kill常用的信号

下面是常用的信号,只有第9种信号(SIGKILL)才可以无条件终止进程。

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

四、kill命令的基本使用

1. 运行一个后台任务

  • 运行一个后台任务进程
[root@docker ~]# sleep 10000  &
[1] 13842

  • 查看后台运行任务
[root@docker ~]# jobs -l
[1]+ 13842 Running                 sleep 10000 &

2. 发送停止信号

  • 发送 STOP信号,停止进程。
[root@docker ~]#  kill -s STOP 13842

[1]+  Stopped                 sleep 10000
  • 发送19信号,停止进程。
[root@docker ~]# kill -s 19 13842 

[1]+  Stopped                 sleep 10000

3. 发送继续信号

发送CONT 信号,使用kill -s CONT (pid)命令。

[root@docker ~]# kill -s CONT 13842 
[root@docker ~]# jobs -l
[1]+ 13842 Running                 sleep 10000 &

发送18信号,继续进程。

[root@docker ~]# kill -s 18 13842 
[root@docker ~]# jobs -l
[1]+ 13842 Running                 sleep 10000 &

4. 发送强制终止信号

  • 使用KILL信号,强制终止进程
[root@docker ~]# kill -s KILL 13842
[root@docker ~]# jobs
[1]+  Killed                  sleep 10000

  • 发送9信号,强制终止进程
kill -9 14991#(PID)

在这里插入图片描述

5. 正常终止进程

发送3信号,正常终止进程。

[root@docker ~]# sleep 10000  &
[1] 15418
[root@docker ~]# kill -3 15418
[root@docker ~]# jobs -l
[1]+ 15418 Quit                    sleep 10000
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。