软件
CentOS 7.4.1708
nginx 1.12.2
我认为 grep 可能能够返回所有监听端口 80 的进程。但是我一定做错了什么,因为 Nginx 没有出现。
要确认 Nginx 正在运行:
$ service nginx status
Active: active (running)
但:
$ ps -ef | grep 80
root 280 2 0 09:50 ? 00:00:00 [kworker/u4:3]first 11288 10899 0 17:41 pts/0 00:00:00 grep --color=auto 80`
它不应该返回对 Nginx 的引用吗?我试图了解基本机制,但我确信我错过了一些东西。非常感谢!
答案1
您ps
对不同的命令感到困惑。ps
显示进程。你想要lsof
:
lsof -i:80
这可能(作为示例)显示:
apache2 489 root 4u IPv6 13547 0t0 TCP *:http (LISTEN)
apache2 5441 www-data 4u IPv6 13547 0t0 TCP *:http (LISTEN)
apache2 5442 www-data 4u IPv6 13547 0t0 TCP *:http (LISTEN)
其中 pid 489、5441 和 5442 正在侦听端口 80 (HTTPTTP),
或者ss
:
ss -lntp 'sport = :80'
State Recv-Q Send-Q Local Address:Port Peer Address:Port
LISTEN 0 128 :::http :::* users:(("apache2",pid=5442,fd=4),("apache2",pid=5441,fd=4),("apache2",pid=489,fd=4))
如果您有 nginx 进程 ID,则可以将其直接传递给 lsof 以查看其打开的内容,例如:
lsof -p 489 | grep TCP
apache2 489 root 3u sock 0,8 0t0 13546 protocol: TCP
apache2 489 root 4u IPv6 13547 0t0 TCP *:http (LISTEN)