Shell/Bash在线运行

所属目录
点击了解高性能代码运行API
运行结果
教程手册
代码仓库
极速运行
交互输入
极速运行模式,更高效的运行,点击编辑器上方的运行按钮即刻体验吧。
以下是用户最新保存的代码
九九乘法表 发布于:2022-11-07 17:39 字符类型判断 发布于:2022-11-07 21:45 12 编写shell脚本,执行后,打印一行提示“Please input a number.”逐次打印用户输入数值,直到用户输入“end”为止。 发布于:2022-10-24 21:42 程序建立三个以输入日期为名称的文件. 发布于:2022-07-12 15:19 用户输入姓氏和名字,系统输出姓名 发布于:2022-07-12 15:01 相隔某数倍数进行打印 发布于:2022-05-25 10:21 工作测试代码 发布于:2022-05-16 14:10 shell基础语法 发布于:2022-04-11 18:29 shell脚本 发布于:2022-01-20 15:56 sssasdfsad asdf asdfa 发布于:2021-10-08 17:10 在线Shell体验 发布于:2021-08-11 09:50 在线shell体验 发布于:2021-08-11 09:45 #输入一个数字,并显示出来。 发布于:2021-08-05 17:05 r_daily_new_clue_d.sh 发布于:2021-07-22 20:34 shell脚本测试 发布于:2021-07-20 20:02 查找局域网内可ssh登录的主机(22端口) 发布于:2021-07-14 18:03 dns setting for macOS 发布于:2021-06-22 14:54 不用date编写计算时间的脚本 发布于:2021-05-23 14:11 第一个shell程序 发布于:2021-05-09 16:12 shell颜色大全 发布于:2021-04-20 02:08 临时测试的 发布于:2021-04-18 04:49 Shell 脚本方式启动Kafka服务 发布于:2021-03-05 08:52 shell脚本方式启动Tomcat服务 发布于:2021-03-02 13:59 九九乘法表 发布于:2021-02-24 19:27 shell 基本用法记录 发布于:2021-01-29 11:02 监控cpu、内存,并且告警 发布于:2021-02-04 16:02 接口测试shell脚本 发布于:2021-01-13 16:56 自动生成openssl证书 发布于:2021-01-12 14:23 curl auth ter global 发布于:2020-09-22 11:32 截取命令结果/后面字符 发布于:2020-09-02 08:55 linux- 1.查看系统信息 发布于:2020-08-06 16:26 v2ray-shell 发布于:2020-09-21 16:13 ubuntu 常用命令 发布于:2020-02-22 17:09 又来测试了 发布于:2019-12-25 10:39 The first project of shell 发布于:2019-05-17 14:51 Shell/Bach 时间戳 发布于:2019-04-03 14:17 linux命令查询cpu、内存信息 发布于:2019-02-24 18:59 [更多]
显示目录

kill 命令-终止(杀死)进程



kill 命令

kill 命令会向操作系统内核发送一个信号(多是终止信号)和目标进程的 PID,然后系统内核根据收到的信号类型,对指定进程进行相应的操作。

kill 命令的基本格式

[root@localhost ~]# kill [信号] PID

kill 命令是按照 PID 来确定进程的,所以 kill 命令只能识别 PID,而不能识别进程名。Linux 定义了几十种不同类型的信号,读者可以使用 kill -l 命令查看所有信号及其编号,这里仅列出几个常用的信号,如表 1 所示。

kill命令常用信号及其含义

信号名 含义
EXIT 程序退出时收到该信息。
HUP 挂掉电话线或终端连接的挂起信号,这个信号也会造成某些进程在没有终止的情况下重新初始化。
INT 表示结束进程,但并不是强制性的,常用的 "Ctrl+C" 组合键发出就是一个 kill -2 的信号。
QUIT 退出。
KILL 杀死进程,即强制结束进程。
SEGV 段错误。
TERM 正常结束进程,是 kill 命令的默认信号。

需要注意的是,表中省略了各个信号名称的前缀 SIG,也就是说,SIGTERM 和 TERM 这两种写法都对,kill 命令都可以理解。


下面,我们举几个例子来说明一下 kill 命令。

标准 kill 命令。

[root@localhost ~】# service httpd start
#启动RPM包默认安装的apache服务
[root@localhost ~]# pstree -p 丨 grep httpd | grep -v "grep"
#查看 httpd 的进程树及 PID。grep 命令査看 httpd 也会生成包含"httpd"关键字的进程,所以使用“-v”反向选择包含“grep”关键字的进程,这里使用 pstree 命令来查询进程,当然也可以使用 ps 和 top 命令
|-httpd(2246)-+-httpd(2247)
|    |-httpd(2248)
|    |-httpd(2249)
|    |-httpd(2250)
|    |-httpd(2251)
[root@localhost ~]# kill 2248
#杀死PID是2248的httpd进程,默认信号是15,正常停止
#如果默认信号15不能杀死进程,则可以尝试-9信号,强制杀死进程
[root@localhost ~]# pstree -p | grep httpd | grep -v "grep"
|-httpd(2246>-+-httpd(2247)
|    |-httpd(2249)
|    |-httpd(2250)
|    |-httpd(2251)
#PID是2248的httpd进程消失了

使用“-1”信号,让进程重启。

[root@localhost ~]# kill -1 2246
使用“-1 (数字1)”信号,让httpd的主进程重新启动
[root@localhost ~]# pstree -p | grep httpd | grep -v "grep"
|-httpd(2246)-+-httpd(2270)
|    |-httpd(2271)
|    |-httpd(2272)
|    |-httpd(2273)
|    |-httpd(2274)
#子httpd进程的PID都更换了,说明httpd进程已经重启了一次

使用“-19”信号,让进程暂停。

[root@localhost ~]# vi test.sh #使用vi命令编辑一个文件,不要退出
[root@localhost ~]# ps aux | grep "vi" | grep -v "grep"
root 2313 0.0 0.2 7116 1544 pts/1 S+ 19:2.0 0:00 vi test.sh
#换一个不同的终端,查看一下这个进程的状态。进程状态是S(休眠)和+(位于后台),因为是在另一个终端运行的命令
[root@localhost ~]# kill -19 2313
#使用-19信号,让PID为2313的进程暂停。相当于在vi界面按 Ctrl+Z 快捷键
[root@localhost ~]# ps aux | grep "vi" | grep -v "grep"
root 2313 0.0 0.2 7116 1580 pts/1 T 19:20 0:00 vi test.sh
#注意2313进程的状态,变成了 T(暂停)状态。这时切换回vi的终端,发现vi命令已经暂停,又回到了命令提示符,不过2313进程就会卡在后台。如果想要恢复,可以使用"kill -9 2313”命令强制中止进程,也可以利用后续章节将要学习的工作管理来进行恢复
由JSRUN为你提供的Shell/Bash在线运行、在线编译工具
        JSRUN提供的Shell/Bash 在线运行,Shell/Bash 在线运行工具,基于linux操作系统环境提供线上编译和线上运行,具有运行快速,运行结果与常用开发、生产环境保持一致的特点。

title

使用此草稿 删除草稿

  • 00:23
注册登录后可减少验证码的弹出,点击前往 注册 | 登录

皮肤:

运行模式:

嵌入代码 iframe嵌入:


服务器已安装大部分常用的依赖库,但仍会存在一些未被安装的库, 可以通过本窗口立即安装所需依赖库,请确保库名正确,否则无法安装成功。


请输入依赖库的名称:

请选择语言: