NGINX가 실행 중일 때 포트 80에서 수신 대기 중임을 grep이 감지할 수 없는 이유는 무엇입니까?

NGINX가 실행 중일 때 포트 80에서 수신 대기 중임을 grep이 감지할 수 없는 이유는 무엇입니까?

소프트웨어

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)

관련 정보