V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
NGINX
NGINX Trac
3rd Party Modules
Security Advisories
CHANGES
OpenResty
ngx_lua
Tengine
在线学习资源
NGINX 开发从入门到精通
NGINX Modules
ngx_echo
zhj0326
V2EX  ›  NGINX

nginx 80 端口被占用,找到对应进程杀不完, kill 完就会有新的怎么解决

  •  
  •   zhj0326 · 360 天前 · 3614 次点击
    这是一个创建于 360 天前的主题,其中的信息可能已经有所发展或是发生改变。

    nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use) nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use) nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use) nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use) nginx: [emerg] bind() to 0.0.0.0:8080 failed (48: Address already in use) nginx: [emerg] still could not bind()

    ss@sdeMacBook-Pro ~ % ps ax -o pid,ppid,%cpu,vsz,wchan,command|egrep '(nginx|PID)' PID PPID %CPU VSZ WCHAN COMMAND 4587 4506 0.0 408636112 - egrep (nginx|PID) ss@sdeMacBook-Pro ~ % sudo kill -9 4587 kill: 4587: No such process ss@sdeMacBook-Pro ~ % ps ax -o pid,ppid,%cpu,vsz,wchan,command|egrep '(nginx|PID)' PID PPID %CPU VSZ WCHAN COMMAND 4592 4506 0.0 408626896 - egrep (nginx|PID)

    38 条回复    2023-12-06 18:02:26 +08:00
    lerry
        1
    lerry  
       360 天前
    killall -9 nginx
    dzdh
        2
    dzdh  
       360 天前
    杀 master 进程。你是不是杀子进程了。要杀 master 才行。
    dzdh
        3
    dzdh  
       360 天前
    mac 上用 brew services stop 。自己编译的另说。
    lisxour
        4
    lisxour  
       360 天前
    是不是有守护服务,你不关掉守护,杀不掉的
    zhj0326
        5
    zhj0326  
    OP
       360 天前
    @lerry 试了,不行
    zhj0326
        6
    zhj0326  
    OP
       360 天前
    @dzdh 怎么杀 master
    zhj0326
        7
    zhj0326  
    OP
       360 天前
    在哪儿关呢?
    ysc3839
        8
    ysc3839  
       360 天前 via Android
    为什么要 ps 后面跟一堆乱七八糟的参数,然后 grep 为什么不直接 grep nginx 呢?输出里都没 nginx 进程,直接 ps aux | grep nginx 不就好了?
    zhj0326
        9
    zhj0326  
    OP
       360 天前
    @ysc3839 ss@sdeMacBook-Pro ~ % ps aux | grep nginx

    ss 8358 0.0 0.0 408636112 1552 s002 S+ 11:29 上午 0:00.00 grep nginx

    ss@sdeMacBook-Pro ~ % sudo kill -9 8358

    kill: 8358: No such process

    ss@sdeMacBook-Pro ~ % ps aux | grep nginx

    ss 8362 0.0 0.0 408637136 1632 s002 S+ 11:29 上午 0:00.00 grep nginx

    ss@sdeMacBook-Pro ~ % sudo kill -9 8362

    kill: 8362: No such process

    kill 不完
    ysc3839
        10
    ysc3839  
       360 天前 via Android
    @zhj0326 这里输出的进程是 grep nginx ,并没有 nginx 进程
    rrfeng
        11
    rrfeng  
       360 天前   ❤️ 2
    是 nginx 想要用 80 ,但是 80 被别人占了,你们教楼主 kill nginx 有屁用啊……
    zhj0326
        12
    zhj0326  
    OP
       360 天前
    @rrfeng So ? 大佬有好的解决办法嘛 = =
    seeyourface
        13
    seeyourface  
       360 天前
    @zhj0326 你是不是部署了个 8080 端口的应用,改应用端口或者改 nginx 监听端口
    oamzn
        14
    oamzn  
       360 天前
    nginx: [emerg] bind() to 0.0.0.0:8080 failed
    我笑笑不说话
    344457769
        15
    344457769  
       360 天前
    命令行不会搞的话,就去活动监视器里看看占用 8080 端口的进程的父进程是谁,能不能强制退出。
    winterbells
        16
    winterbells  
       360 天前 via Android
    Nginx 退出是 nginx -s quit
    到底谁在占用
    lzy250
        17
    lzy250  
       360 天前 via iPhone
    找 8080 吧?
    darklinden
        18
    darklinden  
       360 天前
    mac? 自带的 apache 开着的吧?关了就好

    用命令行的时候看不懂英文的话好歹把输出粘谷歌翻译看下说的是啥啊...
    huadi
        19
    huadi  
       360 天前   ❤️ 1
    netstat -ntlp | grep 8080
    或者 ss -ntlp | grep 8080
    看哪个进程占用了 80 端口,然后 kill
    dzdh
        20
    dzdh  
       360 天前
    lsof -iTCP -sTCP:LISTEN -P | grep :80

    找到哪个进程监听的 80 端口

    没有 lsof 的话先安装 lsof brew install lsof
    huadi
        21
    huadi  
       360 天前
    你的进程里面根本没有 nginx ,所以 grep 不出来。

    8358 ,是 grep 命令的进程号,grep 输出之后,8358 就退出了,你再去 kill 当然 no such process
    然后你再运行 ps|grep ,又有一个新的 grep 进程,就是 8362 ,运行完又退出了,当然 kill 不完……
    zhj0326
        22
    zhj0326  
    OP
       360 天前
    @344457769 监视器看不到
    zhj0326
        23
    zhj0326  
    OP
       360 天前
    @darklinden 不是这个原因
    zhj0326
        24
    zhj0326  
    OP
       360 天前
    @dzdh 牛!
    xlzyxxn
        25
    xlzyxxn  
       360 天前
    我一直以为 v2 里都是技术大佬的。。。
    horro
        26
    horro  
       360 天前
    不就是 lsof -i 就解决了么。。
    gulucn
        27
    gulucn  
       360 天前
    感觉都被 OP 带偏了。
    emma3
        28
    emma3  
       360 天前
    你是 8080 端口被占用,不是 80 。
    28Sv0ngQfIE7Yloe
        29
    28Sv0ngQfIE7Yloe  
       360 天前
    《提问的艺术》
    chendl111
        30
    chendl111  
       359 天前
    我一直以为 v2 里都是技术大佬的。。。
    daxy223
        31
    daxy223  
       359 天前
    @chendl111 笑死了
    BuleGood
        32
    BuleGood  
       359 天前
    你们在讲相声吗
    meiyiliya
        33
    meiyiliya  
       359 天前
    我一直以为 v2 里都是技术大佬的。。。
    3andwich
        34
    3andwich  
       359 天前
    真棒
    davionnini
        35
    davionnini  
       359 天前
    lsof -i:port
    coderzhangsan
        36
    coderzhangsan  
       359 天前
    同上,我要笑死了,原来标题是真的能唬住人的。

    日志就在那里,OP 你为什么不去看呢?就算看不懂,也可以复制粘贴查下吧。
    x250881478
        37
    x250881478  
       359 天前
    根据关键词查进程:sudo -S ps aux | grep "nginx"
    x250881478
        38
    x250881478  
       359 天前
    根据端口查进程:sudo -S lsof -nP -i:80
    把找到的进程, 全部 sudo kill -9 进程 id1 进程 id2 进程 id3...
    如果 up 是搞 web 开发, 可以看下我的工具, 自带端口查杀, 进程查杀
    https://www.macphpstudy.com/
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2878 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 13:51 · PVG 21:51 · LAX 05:51 · JFK 08:51
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.