网站首页 > 精选教程 正文
kill:kill 是一个 Unix 和 Linux 系统中用于发送信号到进程的命令。尽管名字叫“kill”,但它不仅仅用于终止进程,还可以发送各种信号来控制进程的行为。
一、语法
kill [options] <PID>
- <PID>: 这是目标进程的进程ID(Process ID),是必需的参数。
- options: 用于指定信号类型或其他操作。
二、选项
- -s sig 信号名称。
- -n sig 信号名称对应的数字。
- -l 列出信号名称。如果在该选项后提供了数字那么假设它是信号名称对应的数字。
- -L 等价于-l选项。
- 使用kill -l可查看所有信号
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
- 常见信号解析
kill <PID>:默认情况下,kill 命令会发送 SIGTERM 信号给指定的进程。这是一个请求进程终止的信号,进程可以捕捉这个信号并进行适当的清理操作。
kill -9 <PID>:-9 选项发送 SIGKILL 信号。SIGKILL 会立即终止进程,且进程无法捕捉或忽略这个信号。这通常用于无法正常终止的进程。
kill -15 <PID>:-15 选项发送 SIGTERM 信号(这也是默认信号)。这是一个友好的终止信号,允许进程有时间清理资源。
kill -1 <PID>:-1 选项发送 SIGHUP 信号。这个信号通常用于通知进程重新加载配置文件,有时也用于终止进程并重启它。
kill -0 <PID>:-0 选项不会发送实际信号,但会检查指定的进程是否存在。通常用于检查一个进程是否仍在运行。
kill -l:列出所有可用的信号及其编号。
kill -s <signal> <PID>:-s 选项允许你指定要发送的信号的名称,而不是数字。
三、例子
终止进程:
kill 1234:终止进程 ID 为 1234 的进程。
强制终止进程:
kill -9 1234:强制终止进程 ID 为 1234 的进程,立即停止,无论进程状态如何。
重启进程:
kill -1 1234:发送 SIGHUP 信号给进程,通常用于重新加载配置或重启服务。
检查进程是否存在:
kill -0 1234:检查进程 ID 为 1234 的进程是否存在,不发送实际信号。
判断进程是否存活(如图):
在此处,借助 pidof 来查看 nginx 的进程 pid ,而后通过管道将其传递给 kill -0 。xargs 的效用在于把 pidof 输出的数值置于 kill -0 之后,并把所得结果重定向至 /dev/null 。倘若 echo $? 的输出为 0 ,那么便能够证实进程处于正常存活运行的状态;倘若其输出并非 0 ,则表明进程不存在抑或未存活。一般放置于脚本中查看进程状态,而后可进行重启等操作,重启失败可通过发送邮件、钉钉或企业微信通知运维工程师接入排错。
四、总结
kill 命令是一个非常强大的工具,用于管理和控制系统中的进程。它不仅可以终止进程,还可以发送各种信号来与进程进行交互。因此,理解并正确使用 kill 命令对于系统管理和故障排查至关重要。
猜你喜欢
- 2024-10-20 每个开发人员应该知道的 10 个 Linux 命令
- 2024-10-20 linux之我常用的20条命令(之一) 十个常用的linux命令
- 2024-10-20 每个开发者应该了解的 10 个 Linux 命令
- 2024-10-20 Linux系统之linux命令大全与基本常识基础教程丨致臻数据
- 2024-10-20 kill命令以及USR1信号解释 kill常用信号
- 2024-10-20 工作中常用的Linux命令 linux 工作
- 2024-10-20 killall 、kill 、pkill 命令区别
- 2024-10-20 linux基本功系列之kill命令实战 linux kill-15
- 2024-10-20 nginx怎么卸载 nginx如何卸载
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- nginx反向代理 (57)
- nginx日志 (56)
- nginx限制ip访问 (62)
- mac安装nginx (55)
- java和mysql (59)
- java中final (62)
- win10安装java (72)
- java启动参数 (64)
- java链表反转 (64)
- 字符串反转java (72)
- java逻辑运算符 (59)
- java 请求url (65)
- java信号量 (57)
- java定义枚举 (59)
- java字符串压缩 (56)
- java中的反射 (59)
- java 三维数组 (55)
- java插入排序 (68)
- java线程的状态 (62)
- java异步调用 (55)
- java中的异常处理 (62)
- java锁机制 (54)
- java静态内部类 (55)
- java怎么添加图片 (60)
- java 权限框架 (55)
本文暂时没有评论,来添加一个吧(●'◡'●)