前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Centos服务器怎样查看端口是否被占用,被占用的端口进程ID不断地变怎么结束(杀死)?

Centos服务器怎样查看端口是否被占用,被占用的端口进程ID不断地变怎么结束(杀死)?

作者头像
风柏杨4711
发布2021-03-15 11:03:59
8.2K0
发布2021-03-15 11:03:59
举报
文章被收录于专栏:技术小牛技术小牛

在Linux服务器中,经常会以php-cli方式运行一些后台服务,例如swoole, workmanWebSocket框架的服务,当这些服务出现了异常要结束或重启时,很多人可能会找不到当时的运行物理路径或物理路径已经不存在了(例如是进入了部署目录里启动的,但因为发布了新版本,所以原来的部署目录文件夹被覆盖或清理,已经不存在了),这样就无法通过常规的方式去停止服务,只能先找到进程id,然后用kill -9 进程ID的方式来结束。

很多人会首先想到通过使用的端口来查找进程id,常用的命令如:netstat -tunpl | grep 端口号lsof -i :端口号,这样确实能找到当前占用端口的进程ID,但当执行kill -9 进程ID时发现会提示进程id不存在,再执行netstat -tunpl | grep 端口号命令会发现,显示出来的端口号确实与上次的不一样了,这是为什么呢?

原来我们所看到的子进程,是由主进程(master,亦称为守护进程)维护的,所以要达到停止进程的目的,要找到主进程的id,再执行kill命令,就能彻底结束掉这个服务了,具体怎么做呢?

可以使用查找进程的命令:ps -aux | grep php,系统会列出当前所有的php进程,如下图所示:

在这里插入图片描述
在这里插入图片描述

其中有一列会详细列出进程类型(master)及cli进程的启动文件,这个非常有用,能快速地根据启动目录和文件名找到我们想找的服务,然后调用 kill -9 进程ID,就能将服务彻底结束掉了。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-05-28 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档