我需要使用虚拟主机配置 nginx。但是当我尝试启动 ngnix 时,它失败,提示进程已在使用端口 80。我如何找出哪个进程正在使用端口 80 并杀死它,以便我可以启动 nginx?
更新:
vehico@metaiot:~$ netstat -tulpn
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 127.0.0.1:27017 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN -
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp6 0 0 :::22 :::* LISTEN
Run Code Online (Sandbox Code Playgroud)
尝试从命令 shell 使用以下命令:
sudo lsof -i :80
Run Code Online (Sandbox Code Playgroud)
它会告诉你哪个进程正在使用它。 须藤在这里很重要。
要终止进程,请找到 process_id,然后:
kill -9 process_id
Run Code Online (Sandbox Code Playgroud)
或者在 Node.js 进程的情况下:
pkill -f node
Run Code Online (Sandbox Code Playgroud)
Kill命令向指定的进程或进程组发送指定的信号。如果未指定信号,则发送 TERM 信号。这个 TERM 信号将杀死没有捕获它的进程;对于其他进程,可能需要使用 KILL 信号(数字 9),因为无法捕获该信号。
pkill 会将指定的信号(默认为 SIGTERM)发送到每个进程,而不是在 stdout 上列出它们。
Run Code Online (Sandbox Code Playgroud)-f
该模式通常仅与进程名称匹配。设置 -f 时,将使用完整命令行。意味着它将杀死与给定字符串匹配的任何进程。
归档时间: |
|
查看次数: |
7511 次 |
最近记录: |