El aprendizaje de SpringBoot finalmente ha llegado a su fin, pero aún nos deja con una pregunta, es decir, ¿cómo debe implementarse el programa en el servidor de Linux? ¿Se cerrará el programa si SSH está desconectado después de comenzar el programa con el comando? El primer problema es más fácil de resolver. Solo necesita asegurarse de que el JDK esté instalado correctamente y que no habrá grandes problemas. El difícil problema es el último. La clave para resolver el problema es garantizar que el programa se ejecute en un proceso de demonio (fondo). Esta vez compartiré cómo implementar correctamente programas en Linux
Para resolver este problema, revisé la información en Internet y encontré las siguientes 3 soluciones
1 Jar de paquetes en el servicio del sistema (no recomendado)
La desventaja de este método también es bastante obvia, es decir, el servicio es propenso a no ser iniciado, porque diferentes distribuciones de Linux tienen más o menos diferencias en la misma medida.
2 Use el comando nohup para cooperar con Kill -9 xxx
Este método es más fácil de aceptar y también es un compromiso, pero será más problemático detener el programa y usar el comando para encontrar el proceso y luego usar Kill -9.
3 Use pantalla, TMUX, etc. (recomendado)
Teniendo en cuenta este método de manera integral, es más científico porque proporciona una interfaz unificada y las funciones correspondientes para administrar múltiples sesiones, que es más fácil de operar. La desventaja es que requiere un poco de costo de aprendizaje.
Comandos TMUX de uso común:
$ tmux new -s -session -nombre crea una nueva sesión
$ tmux A -t Acceso de nombre de sesión a la sesión especificada
$ tmux separar /$ ctrl-b d Desconecte la sesión actual
$ tmux kill-session -t-nombre de sesión Cierre la sesión
$ tmux ls show todas las sesiones
Comandos de pantalla comunes:
$ Screen -S Window -Name Cree una nueva sesión
$ Screen -R Número o nombre de sesión para acceder a la sesión de sesión/reconexión especificada
$ Screen -ls muestra todas las sesiones
CTRL+AB Separa la sesión actual
CTRL+AK
Las siguientes son sus diferencias. Aunque TMUX está más avanzado, cómo elegir depende de los hábitos de uso de todos
TMUX es muy similar a la pantalla, pero mejor que la pantalla. Para preguntar dónde están las cosas buenas, la respuesta simple es que, aunque las funciones de la pantalla son las mismas, TMUX está mejor diseñado. La pantalla está disponible, pero no estable.
Aquí hay algunos lugares donde Tmux va más allá de la pantalla:
SpringBoot es más conveniente para usar Maven para empaquetar. Verifique la configuración de pom.xml al empacar para asegurarse de que haya las siguientes configuraciones:
<DIARD> <GULTINS> <GLEGIN> <MOUMPROUND> org.springframework.boot </groupid> <artifactID> spring-boot-maven-plugin </artifactid> <figuration> <!-bifurcado: sin esta configuración, DevTools no funcionará, es decir, la aplicación no se reiniciará-> <cuting> verdadero </ fork> <!-Configuración de la opción--Opcionals- <Secutable> True </secutable> </figuration> </plugin> </glugins> lt;/build>
Simplemente use la instalación de Maven para el embalaje. Si el paquete encuentra con éxito el jar correspondiente y lo cambia el nombre, cárguelo al servidor Linux para la autorización.
De esta manera, se inicia la aplicación, incluso si la línea de comando está cerrada o desconectada de SSH, no afectará el funcionamiento normal del programa.
Desconectar
Después de finalizar la sesión, el programa se apaga, como se muestra a continuación
El uso de la pantalla es similar a TMUX. Se ha practicado aquí, así que implemento el programa para ejecutarse en segundo plano. El efecto de seleccionar pantalla y TMUX es similar.
PD: Aquí hay una descripción de la implementación de Boot Spring en Linux
Primero, Maven limpie el proyecto, luego Maven instálelo en un paquete JAR en el proyecto y luego elimine la versión anterior del proceso en Linux.
Verifique el comando PS -EF | grep java
Matar proceso matar -9 número de proceso
Ejecute el proyecto Spring -Boot directamente nohup java -jar sinocube.jar & use nohup para terminar con &
Nohup regresa a los archivos de registro de salida. El archivo de registro puede personalizar el nombre del archivo, predeterminado es nohup.nohup.out
Cat nohup.out ver log nohup.out es el nombre del archivo Tailf nohup.out ver el inicio de sesión en tiempo real