Obtém o ID do processo python para um site da web e / ou um número de porta?

0

Eu tenho alguns aplicativos da web que eu escrevi com o Python Flask. Eu sei em qual porta eu comecei cada um e comecei a usar o nohup. Cada um foi iniciado com algo como nohup python mywebapp.py &

Quando vejo meus processos com ps , vejo apenas algo como

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

Se eu precisar interromper um aplicativo da Web específico, como posso passar de um número de porta de volta para um ID de processo python, para que eu possa kill do processo?

    
por Unknown Coder 26.06.2018 / 17:57

2 respostas

2

Você pode usar lsof para encontrar o ID do processo associado a um número de porta conhecido

lsof -i :*port*

Como alternativa, talvez você queira usar netstat , que pode exibir todas as conexões de rede, tabelas de roteamento, estatísticas de interface, conexões de mascaramento e associações de multicast.

Experimente netstat -tulpn

    
por 26.06.2018 / 18:26
1

Uma outra maneira é adicioná-lo ao próprio aplicativo do frasco.

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