You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Ubuntu环境下如何定位Python3托管的localhost:5000服务文件?

定位Ubuntu上localhost:5000的Python服务文件及目录

当然可以精准定位到啦!我给你一步步拆解实用的命令,轻松找到目标文件和目录:

  • 第一步:获取Python进程的PID
    你已经用lsof -i :5000确认了服务由Python3运行,现在只要过滤出对应的进程ID(PID)就行。运行:

    lsof -i :5000 | grep python3
    

    输出结果里的第二列就是PID(比如12345这样的数字),记下来备用。

  • 第二步:查看进程启动命令与工作目录
    有几个互补的方法,按需使用:

    1. 查看完整启动命令
      ps命令输出进程的详细信息,包括启动脚本:
      ps -p <你的PID> -f
      
      看输出里的CMD列,比如会显示python3 /home/you/myapp/app.py(绝对路径直接拿到),或者python3 app.py(相对路径的话需要结合工作目录)。
    2. 获取服务运行的工作目录
      Linux的/proc文件系统会记录进程的所有细节,直接读取当前工作目录:
      readlink /proc/<你的PID>/cwd
      
      这个命令会直接返回服务启动时所在的目录,结合上面的相对脚本名,就能拼出完整路径。
    3. 解析完整命令行参数
      如果ps的输出不够详细,直接读取进程的命令行参数(注意原始内容是空字符分隔的,需要转成空格):
      cat /proc/<你的PID>/cmdline | tr '\0' ' '
      
      这里会显示最完整的启动命令,包括所有参数和脚本路径。
  • 特殊情况处理:框架启动的服务
    如果你的服务是用Flask、FastAPI这类框架的命令启动的(比如flask runuvicorn main:app),CMD列可能显示的是框架命令而非脚本。这时候可以查看进程的环境变量找线索:

    # 以Flask为例,找FLASK_APP变量
    cat /proc/<你的PID>/environ | tr '\0' '\n' | grep FLASK_APP
    # 以Uvicorn为例,直接看cmdline里的参数即可
    cat /proc/<你的PID>/cmdline | tr '\0' ' '
    

内容的提问来源于stack exchange,提问作者desmondlee

火山引擎 最新活动