#Linux中监控jar包的启动
Descripción:
Creador: csc
Hora: 2023-06-05
Entorno: OpenCloudOS/CentOS 8.
Prueba personal Ya sea que reinicie el sistema o finalice el proceso con kill -9, se iniciará automáticamente.
Puede escribir un servicio systemd para permitir que el sistema inicie automáticamente el paquete jar. Estos son los pasos específicos:
Paso 1. Primero ingrese el directorio /etc/systemd/system/ en el sistema Linux y el comando es el siguiente
cd /etc/systemd/system
Paso 2. El comando para crear un archivo myapp.service es el siguiente:
#Recordatorio amigable: si el archivo no existe, también puede vim directamente. El comando myapp.service lo creará directamente y entrará al modo de edición. No lo explico a continuación.
touch myapp.service
#友情提示 如果文件不存在也可以直接vim myapp.service命令 会直接创建进入编辑模式
vim myapp.service
Paso 3. Edite el comando del archivo de la siguiente manera:
vim myapp.service
Copie el siguiente comando en el comando myapp.service:
[Unit]
Description=My App Service
After=network.target
[Service]
User=root
WorkingDirectory=/path/to/your/jar/file/
ExecStart=/usr/bin/java -jar your.jar
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target
Explicación de la propiedad:
Description表示服务的描述,可以自定义;
After表示该服务要在网络服务启动后才能启动,也可以指定某个jar包启动之后再启动该jar包服务
User表示该服务要以root用户身份运行;
WorkingDirectory表示你自己jar包所在的路径;
**ExecStart表示要执行的命令 /usr/bin/java 是你jdk安装的目录下的bin文件夹 别忘了改成你自己的;**
Restart和RestartSec表示服务停止后要重新启动的时间间隔
el cuarto paso:
点击 esc
输入 :wq 退出编辑
- Después de salir del archivo, ejecute el siguiente comando:
systemctl daemon-reload
systemctl enable myapp.service
systemctl start myapp.service
#查看运行状态
systemctl status myapp.service
#停止服务
systemctl stop myapp.service
De esta manera, el sistema iniciará automáticamente su paquete jar.
Extensión:
4. Lo anterior es suficiente, pero también puede especificar el tamaño de la pila y el entorno de ejecución:
4.1 Primero "edite y cree un archivo .env" en el mismo directorio que el jar. Este archivo debe tener permisos ejecutables como se muestra abajo:
vim netty-server.env #netty-server文件的名字 你们自己随意
Después del éxito,
los comandos en el archivo que se muestra en la Figura 4.2 son los siguientes:
JAVA_OPTS=-Xms256m -Xmx512m -Xmn256m -Xss512k
- Luego agregue [servicio] en el archivo my.service:
EnvironmentFile=-/data/netty-server.env
- El comando completo para mi archivo my.service es el siguiente:
[Unit]
Description=My App Service
After=network.target
[Service]
User=root
EnvironmentFile=-/data/netty-server.env
WorkingDirectory=/data
ExecStart=/usr/local/java/jdk1.8.0_361/jre/bin/java $JAVA_OPTS -jar /data/netty-server.jar
SuccessExitStatus=143
StandardOutput=journal
StandardError=journal
Restart=on-failure
RestartSec=60s
[Install]
WantedBy=multi-user.target
Luego simplemente ejecútelo en secuencia:
systemctl daemon-reload
systemctl enable myapp.service
systemctl start myapp.service