Comment puis-je garder mon Django serveur de fonctionner même après que je ferme ma session ssh?

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

  •  11-12-2019
  •  | 
  •  

Question

J'ai compris comment faire fonctionner mon application Django via sudo python /home/david/myproject/manage.py runserver 68.164.125.221:80.Cependant, après que j'ai quitté le terminal, le serveur s'arrête en cours d'exécution.

J'ai essayé d'exécuter ce processus en arrière-plan, mais le serveur ne s'arrête rapidement après que je l'execute sudo python /home/david/myproject/manage.py runserver 68.164.125.221:80 &.

Comment puis-je garder mon Django application en cours d'exécution, même après que j'ai quitter ma session ssh dans le terminal?

PS - Désolé si cette question vous semble comme élémentaire.Ces sillyness s'ensuit quand un front-end javascript programmeur doit se transformer en un administrateur de serveur de vitesse casse-cou.

Était-ce utile?

La solution

rencontre écran .

Connectez-vous via SSH, écran de démarrage. Ceci ouvre un émulateur de console virtuel sur celui fourni par SSH. Commencez votre serveur là-bas.

Appuyez ensuite sur Ctrl-A, puis d. Cela détachez la session d'écran, la maintenant en arrière-plan.

à [r] e-attachez-y, utilisez l'écran -R.

Si l'écran n'est pas installé et que vous ne pouvez pas l'installer, vous pouvez également démarrer une application en arrière-plan en ajoutant A & à la commande, comme vous l'avez essayé. Mais vous ne devez pas fermer la fenêtre du terminal alors; Déconnectez simplement, avec la sortie de la commande Bash, ou Ctrl-D.

L'avantage de l'écran est que vous pouvez toujours lire la sortie du serveur, au cas où il y a une erreur ou n'importe quoi.

L'écran est un outil très puissant, avec de nombreuses commandes. Vous pouvez ajouter une nouvelle fenêtre virtuelle avec Ctrl-A, puis C (pour la création); Basculer via des fenêtres avec Ctrl-A, puis n (suivant) ou P (précédent), ...

Mais vous en avez besoin pour être installé pour l'utiliser. Puisque vous semblez avoir un accès root, cela ne devrait pas être un problème.

edit: tmux est une autre excellente solution pour le même cas d'utilisation.

Autres conseils

Utilisation screen pour créer une nouvelle fenêtre virtuelle, et exécuter le serveur là.

$ screen
$ python manage.py runserver

Vous verrez que Django serveur a commencé à courir.

Maintenant, appuyez sur Ctrl+A puis appuyez sur la D clé à se détacher de l'écran.Il va dire:

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

Vous pouvez maintenant vous déconnecter de votre terminal, connectez-vous à votre terminal, les autres bits de codage dans d'autres répertoires, aller pour des vacances, de faire ce que vous voulez.


Pour revenir à l'écran que vous avez détaché,

$ screen -r

Pour tuer le serveur django maintenant, appuyez simplement sur Ctrl+C comme vous l'avez fait normalement.


Pour terminate ce courant de l'écran au lieu de detaching à partir de cet écran, utilisez Ctrl+D.Il va dire:

$ [screen is terminating]
$

utiliser nohup.Changez votre commande comme suit:

nohup sudo python /home/david/myproject/manage.py runserver 68.164.125.221:80 &

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top