Como mantenho meu servidor Django funcionando mesmo depois de fechar minha sessão ssh?

StackOverflow https://stackoverflow.com//questions/10656147

  •  11-12-2019
  •  | 
  •  

Pergunta

Eu descobri como executar meu aplicativo Django via sudo python /home/david/myproject/manage.py runserver 68.164.125.221:80.No entanto, depois de sair do terminal, o servidor para de funcionar.

Tentei executar esse processo em segundo plano, mas o servidor desliga rapidamente após a execução sudo python /home/david/myproject/manage.py runserver 68.164.125.221:80 &.

Como mantenho meu aplicativo Django em execução mesmo depois de encerrar minha sessão ssh no terminal?

PS - Desculpe se esta pergunta lhe parece elementar.Essa tolice ocorre quando um programador front-end de javascript deve se transformar em um administrador de servidor em uma velocidade alucinante.

Foi útil?

Solução

Encontrar tela.

Conecte-se através de ssh, tela inicial.Isso abre um emulador de console virtual além daquele fornecido pelo ssh.Inicie seu servidor lá.

Em seguida, pressione Ctrl-a e d.Isso desanexa a sessão da tela, mantendo-a em execução em segundo plano.

Para [R]e anexar a ele, use screen -r.

Se a tela não estiver instalada e você não conseguir instalá-la, você também poderá iniciar um aplicativo em segundo plano adicionando um & ao comando, como tentou.Mas você não deve fechar a janela do terminal;apenas desconecte, com o comando bash exit ou Ctrl-d.

A vantagem da tela é que você ainda pode ler a saída do servidor, caso haja algum erro ou algo assim.

Screen é uma ferramenta realmente poderosa, com muito mais comandos.Você pode adicionar uma nova janela virtual com Ctrl-a e depois c (para Criar);alterne pelas janelas com Ctrl-a, depois n (próximo) ou p (anterior), ...

Mas você precisa que ele esteja instalado para usá-lo.Como você parece ter acesso root, isso não deve ser um problema.

EDITAR: tmux é outra ótima solução para o mesmo caso de uso.

Outras dicas

Usar screen para criar uma nova janela virtual e executar o servidor lá.

$ screen
$ python manage.py runserver

Você verá que o servidor Django começou a rodar.

Agora pressione Ctrl+A e depois pressione o D tecla para se desconectar dessa tela.Dirá:

$ [detached from ###.pts-0.hostname]

Agora você pode sair do seu terminal com segurança, fazer login novamente no seu terminal, fazer outras partes de codificação em outros diretórios, sair de férias, fazer o que quiser.


Para retornar à tela da qual você foi desconectado,

$ screen -r

Para encerrar o servidor Django agora, simplesmente pressione Ctrl+C como você teria feito normalmente.


Para terminate esta tela atual em vez de detaching nesta tela, use Ctrl+D.Dirá:

$ [screen is terminating]
$

Use nohup.Altere seu comando da seguinte maneira:

nohup sudo python /home/david/myproject/manage.py runserver 68.164.125.221:80 &
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top