【linux】循序渐进学运维-基础篇-kill命令


大家好,我是高胜寒,本文是Linux运维-循序渐进学运维-基础篇的第46篇文章。

kill命令属于系统进程管理命令。

1. 命令格式

kill [参数][进程号】

2. 命令功能

发送指定的信号到相应的京城,不指定型号将发送SIGTERM(15)终止进程。

3. 命令参数

参数 含义
-l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称
-a 当处理当前进程时,不限制命令名和进程号的对应关系
-p 指定kill 命令只打印相关进程的进程号,而不发送任何信号
-s 指定发送信号
-u 指定用户
-v 指定用户
–version 显示版本信息

4. kill相关的命令

关闭进程3个命令:kill killall pkill
kill关闭进程:kill 进程号 关闭单个进程
killall和pkill 命令用于杀死指定名字的进程

5. 关于kill的信号

kill -l
在这里插入图片描述常用的信号:

信号编号 信号名 作用
1) SIGHUP 重新加载配置
2) SIGINT 键盘中断 crtl+c
3) SIGQUIT 退出
9) SIGKILL 强制终止
15) SIGTERM 终止(正常结束),缺省信号
18) SIGCONT 继续
19) SIGSTOP 停止
20) SIGTSTP 暂停 crtl+z

6. 使用方法

1) 彻底杀死进程:

查看进程id
在这里插入图片描述
杀死进程
[root@zmgaosh ~]# kill -9 2287

在这里插入图片描述

2)杀死程序
[root@zmgaosh ~]# yum install httpd   #安装http
[root@zmgaosh ~]# systemctl  start httpd   # 启动http

查看进程ID

[root@zmgaosh ~]# ps -aux |grep http
root     10448  0.0  0.1 230432  5184 ?        Ss   19:48   0:00 /usr/sbin/httpd -DFOREGROUND
apache   10531  0.0  0.0 230432  3000 ?        S    19:48   0:00 /usr/sbin/httpd -DFOREGROUND
apache   10532  0.0  0.0 230432  3000 ?        S    19:48   0:00 /usr/sbin/httpd -DFOREGROUND
apache   10533  0.0  0.0 230432  3000 ?        S    19:48   0:00 /usr/sbin/httpd -DFOREGROUND
apache   10534  0.0  0.0 230432  3000 ?        S    19:48   0:00 /usr/sbin/httpd -DFOREGROUND
apache   10535  0.0  0.0 230432  3000 ?        S    19:48   0:00 /usr/sbin/httpd -DFOREGROUND
root     13745  0.0  0.0 112728   972 pts/0    R+   19:49   0:00 grep --color=auto http

可以看到http的进程有点多,我们如果用kill -9 需要一个一个杀死,这个使用pkill的作用就显现出来了。

pkill 或者killall 可以一次性杀死程序。

所以此处可以用

pkill -9 httpd
或
killall -9 httpd

重要提示:

不要随便使用kill -9的命令,强制杀死进程不是一个好习惯。
我们平时用的kill命令,默认是kill -15, 当我们执行kill后,事实上系统内部的操作是:

  1. 立即停止程序
  2. 释放相应资源后终止程序
  3. 忽略该信号,继续执行程序
    在退出前会做一些准备工作,比如释放资源,清理临时文件等,做完了这些操作才正式停止,如果在做准备工作的时候遇到了阻碍,应用程序会选择忽略该终止信号。

而kill -9 有时候会导致数据丢失,尤其是一些web应用,定时任务或者包含长事务的应用中,尽量不要使用kill -9. 工作中很多的服务都需要很长的时间来收尾,比如tomcat容器,dubbo服务,流量引擎等,这些地方尽快不要用 -9.

切记: 保证业务稳定安全是重中之重。

总结:

  1. 杀死不存在的程序会报错
  2. 使用kill的时候不指定信号,默认会发送信号15, 信号15是终止指定进程, 让进程在退出之前清理并释放资源
  3. 使用kill时候,如果加上 -9表示强制终止程序,可能会使数据丢失。

我是高胜寒,一个在教培行业不忘初心的人, 关注我,一起学习,欢迎点赞收藏,我们下篇文章再见!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章