Flask 웹사이트의 Python 프로세스 ID 및/또는 포트 번호를 얻으시겠습니까?

Flask 웹사이트의 Python 프로세스 ID 및/또는 포트 번호를 얻으시겠습니까?

Python Flask로 작성된 일부 웹 애플리케이션이 있습니다. 각 포트를 어떤 포트에서 시작했는지 알고 있으며 각 포트는 nohup을 사용하여 시작되었습니다. 각각은 비슷한 것으로 시작합니다.nohup python mywebapp.py &

내 프로세스를 보면 ps다음과 같은 것만 보입니다.

36697 ?        60-21:36:16 python
 36971 ?        63-19:11:43 python
 37038 ?        65-06:57:22 python
 37312 ?        54-23:33:16 python
 37442 ?        54-09:14:57 python
 37716 ?        47-19:45:17 python
 68019 ?        00:29:24 python
146568 ?        00:20:57 python
146699 ?        00:17:08 python
150622 ?        00:32:20 python

kill특정 웹 애플리케이션을 중지해야 하는 경우 프로세스를 처리할 수 있도록 포트 번호에서 Python 프로세스 ID로 어떻게 돌아가나요 ?

답변1

lsof알려진 포트 번호와 연관된 프로세스 ID를 찾는 데 사용할 수 있습니다.

lsof -i :*port*

netstat또는 모든 네트워크 연결, 라우팅 테이블, 인터페이스 통계, 가상 연결 및 멀티캐스트 멤버십을 표시하는 데 사용할 수도 있습니다 .

노력하다netstat -tulpn

답변2

또 다른 방법은 이를 Flask 애플리케이션 자체에 추가하는 것입니다.

from os import getpid
print("Creating PID file.")
fh=open("/var/run/yourAppNameWithPort.pid", "w")
fh.write(str(getpid()))
fh.close()

답변3

마지막 백그라운드 작업의 PID를 얻을 수도 있습니다.

$ FLASK_APP=myapp flask run &
[1] 10947

$ mypid=$!

$ echo $mypid
10947

$ kill $mypid
[1]  + terminated  FLASK_APP=myapp flask run

관련 정보