首页
技术小册
AIGC
面试刷题
技术文章
MAGENTO
云计算
视频课程
源码下载
PDF书籍
「涨薪秘籍」
登录
注册
函数参数与返回值
传递变长参数
defer 和追踪
内置函数
递归函数
将函数作为参数
闭包
应用闭包:将函数作为返回值
使用闭包调试
计算函数执行时间
通过内存缓存来提升性能
声明和初始化
切片
For-range 结构
切片重组(reslice)
切片的复制与追加
字符串、数组和切片的应用
声明、初始化和 make
测试键值对是否存在及删除元素
for-range 的配套用法
map 类型的切片
map 的排序
将 map 的键值对调
标准库概述
regexp 包
锁和 sync 包
精密计算和 big 包
自定义包和可见性
为自定义包使用 godoc
使用 go install 安装自定义包
自定义包的目录结构、go install 和 go test
通过 Git 打包和安装
Go 的外部包和项目
在 Go 程序中使用外部库
结构体定义
使用工厂方法创建结构体实例
使用自定义包中的结构体
带标签的结构体
匿名字段和内嵌结构体
方法
类型的 String() 方法和格式化描述符
垃圾回收和 SetFinalizer
当前位置:
首页>>
技术小册>>
go编程权威指南(二)
小册名称:go编程权威指南(二)
前面小节介绍了如何启动一个程序进程,还介绍了如何查看系统进程信息,本小节来介绍如何通过 `kill` 命令结束进程。 1\. Linux 进程信号介绍 ---------------- 下面列举出 Linux 进程信号的描述: | 信号 | 名称 | 描述 | | :-- | :-- | :-- | | 1 | HUP | 挂起 | | 2 | INT | 中断 | | 3 | QUIT | 结束运行 | | 9 | KILL | 无条件终止 | | 11 | SEGV | 段错误 | | 15 | TERM | 尽可能终止 | | 17 | STOP | 无条件停止运行,但不终止 | | 18 | TSTP | 停止或暂停,但继续在后台运行 | | 19 | CONT | 在 STOP 或 TSTP 之后恢复执行 | 2\. 查看进程的 PID ------------- 这里还是以之前启动的 `apache` 进程为例,使用 `ps` 查看 `apache` 命令如下: ps -ef | grep apache > **Tips**:如上所示,可以看到有三条 `apache` 相关信息信息,其中 PID 为 `12512` 这一列表示的是当前打开窗口的进程,`12471` 和 `12472` 这两个 PID 无法直接判断是否是之前启动 `apache` 服务的 PID,下面可以使用端口号去确认进程 PID。 3\. 端口号概念 --------- 所谓的端口,就好像是门牌号一样,客户端可以通过 ip 地址找到对应的服务器端,但是服务器端是有很多端口的,每个应用程序对应一个端口号,通过类似门牌号的端口号,客户端才能真正的访问到该服务器。为了对端口进行区分,将每个端口进行了编号,这就是端口号 。 4\. 通过进程 PID 查找端口号 ------------------ `apache2` 软件服务启动之后默认的端口号是 `80`,可以使用如下命通过 `PID` 查找到端口号,命令如下: netstat -apn | grep 12471 > **Tips**:如上所示,可以知道进程 `PID = 12471` 这个进程符合 `nginx` 启动的端口号。 4\. kill 结束进程 ------------- 前面查找到进程的 `PID` 之后,可以使用 `kill` 命令杀死进程,命令如下: kill -9 12471 ps -ef | grep apache > Tips:从上命令可以看到,使用 `kill -9` 命令之后,可以杀掉 `PID = 12471` 这个进程,`12472` 属于 `12471` 的子进程,所以也会被一起杀掉,从前面的表中可以看到 `-9` 表示无条件终止。 5\. killall 结束进程 ---------------- `killall` 命令可以直接通过进程相关的名称来结束进程,先启动 `apache` 服务之后,然后使用 `killall` 杀掉 `apache` 相关的进程,命令如下: service apache2 start ps -ef | grep apache2 killall apache2 ps -ef | grep apache2 > **Tips**:实际业务中 `killall` 使用时需要谨慎,防止 `root` 权限误操作误杀其他进程。 6\. 小结 ------ 本小节介绍了进程通信信号描述,介绍了如何使用 `ps` 命令查看进程的 `PID`,还介绍了如何使用 `kill` 和 `killall` 结束进程,其中 `kill` 是通过进程的 `PID` 来结束掉进程的,`killall` 可以通过进程名称来结束掉进程,另外还介绍了如何使用 `PID` 去查找该应用程序占用的端口号。
上一篇:
Linux查看进程
下一篇:
Linux磁盘空间
该分类下的相关小册推荐:
深入浅出Go语言核心编程(四)
go编程权威指南(一)
企业级Go应用开发从零开始
Go Web编程(中)
Go-Web编程实战
Go开发基础入门
深入浅出Go语言核心编程(六)
深入浅出Go语言核心编程(二)
Go Web编程(下)
Go开发权威指南(下)
Go 组件设计与实现
Go语言入门实战经典