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