Does the fact that I have lost the command prompt mean that the process is still running?
Improvável. O processo terá uma conexão com o terminal virtual do ssh, que eventualmente terminará e matará todos os processos associados a esse terminal - embora o gunicorn possa ser escrito de uma maneira que não saia quando o terminal de controle desaparecer.
How do I get back to the command prompt without killing the process?
Se o terminal ainda estiver ativo, pressione CTRL + Z para voltar ao prompt de comando, então escreva bg
para colocar o gnuicorn em segundo plano (e use fg
para voltar ao processo para que você possa matá-lo - por exemplo, com CTRL+C
).
Iniciá-lo como gunicorn -w 4 myapp:app &
colocará o processo no fundo do shell imediatamente - embora dependendo do servidor, ele ainda possa ser eliminado quando sua sessão ssh terminar. Executar nohup gunicorn -w 4 myapp:app &
garantirá que o processo seja executado mesmo quando você se desconectar. Leia a man page de nohup
Outra opção é executar o processo em um terminal que permita reconectá-lo. Isso é o que a tela GNU ou o tmux permite que você faça - efetivamente permitindo que você desconecte a sessão ssh, conecte-se novamente e reconecte a uma sessão de terminal existente.
How do I come back and monitor the process later?
Você não pode, a menos que você execute o processo dentro de uma tela GNU ou sessão tmux - nesse caso, os docs / tutoriais para tela ou tmux lhe dirão os detalhes - ou você iniciou o servidor para ser executado como um serviço / em segundo plano.
How do I eventually kill the process?
A maioria dos programas de servidor terá uma interface de gerenciamento (por exemplo, comandos que você terá que executar), e você terá que encontrar as informações relevantes na documentação.
Ou eles se integram nos procedimentos de gerenciamento de inicialização e serviço do Linux / Unix, caso em que você os gerencia como qualquer outro serviço, por exemplo, /sbin/service fooserver start
/sbin/service fooserver stop
em algumas distribuições linux.
Ou você tem que fazer isso manualmente. Encontre o processo executando ps -ef |grep fooserver
para encontrar seu pid e o mate, kill <the pid>
. Ou procure na documentação se o erver puder escrever um "arquivo pid" quando ele for iniciado, para que você possa encontrar o ID do processo nesse arquivo mais tarde.
Agora, parece que pelo menos o gunicorn tem um argumento -D, que é usado para colocar o servidor em segundo plano, desconectando-o do terminal, para que ele não seja danificado quando a conexão do ssh / putty for desconectada. Veja o link
Você terá que gerenciar / monitorar manualmente, isto é, matá-lo como eu mencionei acima, monitorá-lo através do arquivo de log que ele produz - ou qualquer aplicativo web de monitoramento integrado ou comandos que o gnuicorn possa ter.
A intenção aqui é claramente que alguém empacote o gnuicorn para uma determinada variante linux / * nix, e escreva os scripts e arquivos de configuração relevantes para integrá-lo ao gerenciamento de serviço nativo da distribuição. (por exemplo, um script padrão em /etc/init.d/ para iniciar e parar o servidor, usado em muitos
linux'es)