Comment puis-je garder mon Django serveur de fonctionner même après que je ferme ma session ssh?
-
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.
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 &