文章目录
- 命令格式
- 命令功能
- 命令参数
- kill相关的命令
- 关于kill的信号
- 使用方法
- 彻底杀死进程:
2)杀死程序
重要提示:
总结:
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. 使用方法
- 彻底杀死进程:
查看进程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后,事实上系统内部的操作是:
- 立即停止程序
- 释放相应资源后终止程序
- 忽略该信号,继续执行程序
在退出前会做一些准备工作,比如释放资源,清理临时文件等,做完了这些操作才正式停止,如果在做准备工作的时候遇到了阻碍,应用程序会选择忽略该终止信号。
而kill -9 有时候会导致数据丢失,尤其是一些web应用,定时任务或者包含长事务的应用中,尽量不要使用kill -9. 工作中很多的服务都需要很长的时间来收尾,比如tomcat容器,dubbo服务,流量引擎等,这些地方尽快不要用 -9.
切记: 保证业务稳定安全是重中之重。
总结
- 杀死不存在的程序会报错
- 使用kill的时候不指定信号,默认会发送信号15, 信号15是终止指定进程, 让进程在退出之前清理并释放资源
- 使用kill时候,如果加上 -9表示强制终止程序,可能会使数据丢失。