L'apprentissage de Springboot a finalement pris fin, mais cela nous laisse toujours une question, c'est-à-dire comment le programme devrait être déployé sur le serveur Linux? Le programme sera-t-il arrêté si SSH est déconnecté après avoir commencé le programme avec la commande? Le premier problème est plus facile à résoudre. Il vous suffit de vous assurer que le JDK est installé correctement et qu'il n'y aura pas de gros problèmes. Le problème délicat est ce dernier. La clé pour résoudre le problème est de s'assurer que le programme s'exécute dans un processus de démon (arrière-plan). Cette fois, je partagerai comment déployer correctement les programmes sous Linux
Afin de résoudre ce problème, j'ai vérifié les informations sur Internet et trouvé les 3 solutions suivantes
1 pot de package dans le service système (non recommandé)
L'inconvénient de cette méthode est également assez évident, c'est-à-dire que le service est sujet à ne pas démarrer, car différentes distributions Linux ont plus ou moins de différences dans la même mesure.
2 Utilisez la commande nohup pour coopérer avec Kill -9 xxx
Cette méthode est plus facile à accepter et est également un compromis, mais il sera plus gênant d'arrêter le programme et d'utiliser la commande pour trouver le processus, puis d'utiliser Kill -9.
3 Utilisez l'écran, TMUX, etc. (recommandé)
Compte tenu de cette méthode de manière approfondie, elle est plus scientifique car elle fournit une interface unifiée et des fonctions correspondantes pour gérer plusieurs sessions, ce qui est plus facile à utiliser. L'inconvénient est qu'il nécessite un peu de coût d'apprentissage.
Commandes TMUX couramment utilisées:
$ TMUX NOUVEAU -S SESSION-NOM Créer une nouvelle session
$ TMUX A -T-Session-Name Accès à la session spécifiée
$ tmux détach / $ ctrl-b d Débrancher la session en cours
$ tmux kill-session -T-Session-Name Fermez la session
$ tmux ls montrent toutes les sessions
Commandes d'écran communes:
$ Screen -s Nom de fenêtre Créez une nouvelle session
Numéro ou nom de session de Screen -R $ pour accéder à la session / reconnexion spécifiée
$ Screen -LS Afficher toutes les sessions
CTRL + AB sépare la session en cours
Ctrl + ak
Voici leurs différences. Bien que TMUX soit plus avancé, comment choisir dépend des habitudes d'utilisation de chacun
TMUX est très similaire à l'écran, mais meilleur que l'écran. Pour demander où sont les bonnes choses, la réponse simple est que bien que les fonctions de l'écran soient les mêmes, TMUX est mieux conçu. L'écran est disponible, mais pas stable.
Voici quelques endroits où TMUX va au-delà de l'écran:
Springboot est plus pratique pour utiliser Maven pour emballer. Vérifiez la configuration de pom.xml lors de l'emballage pour vous assurer qu'il existe les configurations suivantes:
<uild> <Glugins> <Glugin> <ProupId> org.springframework.boot </prôdId> <ArtifactId> printemps-boot-maven-Plugin </ artifactid> <figfinalisation> <! - Fork: sans cette configuration, Devtools ne fonctionnera pas, c'est-à-dire la configuration facultative -> <fork> true </ fork> <! - Configuration facultative -> <Sexecuable> true </ Execupable> </FIGIFIGURATION> </ Plugin> </ Plugins> LT; / Build>
Utilisez simplement Maven Installer pour l'emballage. Si le package trouve avec succès le pot correspondant et le renomme, téléchargez-le sur le serveur Linux pour l'autorisation.
De cette façon, l'application est démarrée, même si la ligne de commande est fermée ou déconnectée de SSH, elle n'affectera pas le fonctionnement normal du programme.
Débrancher
Une fois la session terminée, le programme est arrêté, comme indiqué ci-dessous
L'utilisation de l'écran est similaire à TMUX. Il a été pratiqué ici, donc je déploie le programme pour s'exécuter en arrière-plan. L'effet de la sélection de l'écran et du TMUX est similaire.
PS: Voici une description du déploiement de Spring-Boot à Linux
Tout d'abord, Maven nettoie le projet, puis Maven l'installe dans un package JAR sur le projet, puis supprimez la version précédente du processus sur Linux.
Vérifiez la commande ps -ef | java grep
Tuer le processus Kill -9 Numéro de processus
Exécutez le projet Spring-Boot directement Nohup Java -Jar Sinocube.jar & Utilisez Nohup pour terminer avec &
NoHup revient aux fichiers journaux de sortie. Le fichier journal peut personnaliser le nom du fichier, par défaut est nohup.nohup.out
Cat nohup.out Affichage du journal nohup.out est le nom de fichier tailf nohup.out afficher le journal en temps réel