当前位置: 首页 > article >正文

linux 端口 进程

文章目录

  • 1. 检查端口是否被监听
      • 1. 使用 `netstat` 命令
      • 2. 使用 `ss` 命令
      • 3. 使用 `lsof` 命令
      • 4. 使用 `curl` 命令
      • 5. 使用 `telnet` 命令
      • 6. 查看Python程序输出
      • 示例输出
      • 总结
  • 2.查看端口被哪个进程占用
      • 1. 使用 `lsof` 命令
      • 2. 使用 `netstat` 命令
      • 3. 使用 `ss` 命令
      • 示例输出
      • 总结
  • 3.查看进程在哪个目录下运行
      • 1. 使用 `ls` 命令查看进程的链接
        • 查看当前工作目录
        • 查看可执行文件路径
      • 2. 使用 `pwdx` 命令
      • 3. 使用 `ps` 命令
      • 4. 使用 `cat` 命令查看`/proc`中的信息
      • 示例
        • 1. 查看当前工作目录
        • 2. 查看可执行文件路径
        • 3. 使用 `pwdx` 查看进程工作目录
      • 总结

1. 检查端口是否被监听

要检查在服务器上端口12345是否已启动并监听,可以使用多种方法,具体取决于你所使用的操作系统。下面是一些在Linux(如CentOS)上常用的方法:

1. 使用 netstat 命令

netstat 是一个常用的网络工具,可以显示网络连接、路由表、接口统计信息等。可以使用以下命令检查端口12345的状态:

netstat -tuln | grep 12345

2. 使用 ss 命令

ss 是另一个用于检查网络连接的工具,功能更加强大。你可以使用以下命令查看端口12345的状态:

ss -tuln | grep 12345

3. 使用 lsof 命令

lsof 命令用于列出当前系统打开的文件,包括网络连接。可以用来查看某个特定端口的使用情况:

lsof -i :12345

4. 使用 curl 命令

如果你的中继服务器使用的是TCP协议,你可以使用 curl 来测试端口是否响应(注意:因为我们这里用的是UDP,所以这个方法不适用,但在某些情况下可以使用):

curl localhost:12345

5. 使用 telnet 命令

telnet 命令可以用来测试网络连接。如果你安装了 telnet,可以运行:

telnet localhost 12345

6. 查看Python程序输出

如果你在终端中运行中继服务器程序,服务器会打印出“安全中继服务器已启动,等待客户端连接…”的信息。这也表明服务器正在监听端口12345。

示例输出

如果使用 netstatss 命令,应该能看到类似以下的输出(具体根据你的环境不同而有所变化):

udp        0      0 0.0.0.0:12345           0.0.0.0:*                           

总结

通过上述方法,你可以确认端口12345是否已启动并正在监听。如果没有看到任何输出,说明该端口没有在监听,你可能需要检查中继服务器代码是否在运行,或者是否存在防火墙设置阻止访问。

2.查看端口被哪个进程占用

要查看在Linux系统上端口12345是被哪个程序占用的,你可以使用以下几种命令:

1. 使用 lsof 命令

lsof(List Open Files)命令可以列出当前系统打开的文件,包括网络连接。你可以用它来查看特定端口的占用情况。

lsof -i :12345

2. 使用 netstat 命令

netstat 命令可以显示所有的网络连接,使用以下命令也能找出哪个程序正在使用端口:

netstat -tulnp | grep 12345
  • -t:显示TCP连接
  • -u:显示UDP连接
  • -l:仅显示在监听状态的连接
  • -n:显示IP地址而不是主机名
  • -p:显示进程ID和程序名称

3. 使用 ss 命令

ss(Socket Stat)命令是 netstat 的替代品,功能更强大,使用方式如下:

ss -tulnp | grep 12345
  • 选项与 netstat 类似。

示例输出

运行这些命令后,输出可能如下所示:

COMMAND   PID USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
python3  12345 user   3u  IPv4 123456      0t0  UDP *:12345
  • COMMAND:占用该端口的程序名称(如 python3)。
  • PID:占用该端口的进程ID(如 12345)。
  • USER:运行该程序的用户。
  • FD:文件描述符。
  • TYPE:连接类型(如 IPv4)。
  • NODE:网络节点名称。

总结

通过上述命令,你可以轻松查找出哪个程序正在使用端口12345。如果你发现该端口被意外的程序占用,可能需要根据程序的PID来决定是否结束该进程。可以使用以下命令结束一个进程:

kill <PID>

如果需要强制结束进程,可以使用:

kill -9 <PID>

请谨慎使用kill命令,以免意外终止重要的系统进程。

文章目录

  • 1. 检查端口是否被监听
      • 1. 使用 `netstat` 命令
      • 2. 使用 `ss` 命令
      • 3. 使用 `lsof` 命令
      • 4. 使用 `curl` 命令
      • 5. 使用 `telnet` 命令
      • 6. 查看Python程序输出
      • 示例输出
      • 总结
  • 2.查看端口被哪个进程占用
      • 1. 使用 `lsof` 命令
      • 2. 使用 `netstat` 命令
      • 3. 使用 `ss` 命令
      • 示例输出
      • 总结
  • 3.查看进程在哪个目录下运行
      • 1. 使用 `ls` 命令查看进程的链接
        • 查看当前工作目录
        • 查看可执行文件路径
      • 2. 使用 `pwdx` 命令
      • 3. 使用 `ps` 命令
      • 4. 使用 `cat` 命令查看`/proc`中的信息
      • 示例
        • 1. 查看当前工作目录
        • 2. 查看可执行文件路径
        • 3. 使用 `pwdx` 查看进程工作目录
      • 总结

3.查看进程在哪个目录下运行

要查看一个特定进程的PID(进程ID)是在什么目录下启动的,可以使用以下几种方法:

1. 使用 ls 命令查看进程的链接

每个进程都有一个/proc目录,其中包含该进程的相关信息。你可以通过查看cwd(当前工作目录)和exe(可执行文件)链接来获取启动目录。

查看当前工作目录
ls -l /proc/<PID>/cwd
查看可执行文件路径
ls -l /proc/<PID>/exe

2. 使用 pwdx 命令

pwdx 是一个方便的命令,可以直接显示给定进程的当前工作目录。

pwdx <PID>

3. 使用 ps 命令

ps 命令可以显示与当前正在运行的进程相关的信息,包括其启动目录。

ps -p <PID> -o args=

4. 使用 cat 命令查看/proc中的信息

/proc/<PID>/目录下,你可以使用cat命令查看一些信息。

cat /proc/<PID>/cmdline

示例

假设你想查看PID为12345的进程:

1. 查看当前工作目录
ls -l /proc/12345/cwd

输出可能类似于:

lrwxrwxrwx 1 user user 0 Oct  2 12:00 /proc/12345/cwd -> /home/user/my_project
2. 查看可执行文件路径
ls -l /proc/12345/exe

输出可能类似于:

lrwxrwxrwx 1 user user 0 Oct  2 12:00 /proc/12345/exe -> /usr/bin/python3
3. 使用 pwdx 查看进程工作目录
pwdx 12345

输出可能是:

12345: /home/user/my_project

总结

通过上述方法,你可以轻松查看特定PID的进程是从哪个目录启动的。这在调试或分析程序行为时非常有用。


http://www.kler.cn/news/333720.html

相关文章:

  • Pytorch实现CNN实验
  • 自动驾驶核心技术:感知融合、规划决策、控制执行
  • 枫叶MTS格式转换器- 强大、操作简单的MTS、M2TS视频转换工具供大家学习研究参考
  • vscode qt 最新开发环境配置, 基于最新插件 Qt All Extensions Pack
  • 基于SpringBoot+Vue的摄影社团管理系统
  • 小程序 uniapp+Android+hbuilderx体育场地预约管理系统的设计与实现
  • 心觉:梦想成真的三个核心步骤
  • Docker Desktop 安装Centos 7.9 使用yum install不可用问题
  • ZLMediaKit编译运行
  • CGLib动态代理和JDK动态代理Demo、ASM技术尝鲜
  • 重生到现代之从零开始的C语言生活》—— 内存的存储
  • 微信小程序hbuilderx+uniapp+Android 新农村综合风貌旅游展示平台
  • 项目-坦克大战笔记-子弹的生成
  • activity-context-attribute-alias 元素
  • 中国剩余定理专题
  • 欄位未知的Datatable轉成ObserObservableCollection<T>對象
  • 一、机器学习算法与实践_06迭代法和KMeans、线性回归、逻辑回归算法笔记
  • 【Java】—— 泛型:泛型的理解及其在集合(List,Set)、比较器(Comparator)中的使用
  • Linux学习笔记(六):服务管理,监控,RPM包管理,yum包管理工具,Linux启动管理,网络管理
  • 图像特征提取-SIFT