赞
踩
首先,我们先检查系统是否自带了 JDK。输入命令
java -verison
批量删除
rpm -qa | grep java | xargs rpm -e --nodeps
我们在 user 目录下建立一个新的 java文件夹,用来存放 JDK文件。
jdk下载地址
上传到服务器后,执行解压命令
// tar包进行解压
tar -zxvf jdk-8u401-linux-x64.tar.gz
如果/etc/profile文件不可编辑,我们需要先修改其为可编辑才行
sudo chmod -v u+w /etc/profile
vim编辑器来进行编辑。输入命令
vim /etc/profile
添加如下配置
# java
export JAVA_HOME=/usr/java/jdk1.8.0_401
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib
配置添加完成后,按 “Esc”键,输入 “:wq”,就可以保存文件并返回了
重新编译
source /etc/profile
测试是否安装成功
java
javac
java -version
在 /etc/systemd/system 目录下创建一个以 .service 为后缀的文件,例如spring-boot.service。
vim /etc/systemd/system/spring-boot.service
chmod 777 /etc/systemd/system/spring-boot.service
/usr/lib/systemd/system/spring-boot.service
[Unit] Description=spring-boot-demo After=syslog.target [Service] User=root ExecStart=/usr/java/jdk1.8.0_401/bin/java -jar /data/java/spring-boot/spring-boot-admin.jar WorkingDirectory=/data/java/spring-boot Restart=always RestartSec=10 StandardOutput=syslog StandardError=syslog [Install] WantedBy=multi-user.target
对应解释
[Unit] 部分: Description=spring-boot:描述了这个服务的简短描述,即服务的名称。 After=syslog.target:指定了在启动这个服务之前,需要等待 syslog.target 目标完成启动。 [Service] 部分: User=root:指定了这个服务运行的用户,这里是 root 用户。 ExecStart=java -jar /data/java/spring-boot/spring-admin.jar:指定了服务启动时要执行的命令,这里是启动一个Java应用程序,运行在 /data/java/spring-boot/spring-admin.jar 文件上。 WorkingDirectory=/data/java/spring-boot:指定了服务的工作目录,这是执行命令时的当前目录。 Restart=always:指定了服务的重启策略,即当服务意外退出时,总是自动重启。 RestartSec=10:指定了服务在意外退出后重新启动的延迟时间,这里是10秒。 StandardOutput=syslog:指定了服务的标准输出重定向到 syslog。这意味着服务的输出将会被记录到系统日志中。 StandardError=syslog:指定了服务的标准错误输出重定向到 syslog。 [Install] 部分: 此部分为空,因此没有指定服务的安装信息。
ExecStart也可以加一下启动参数等
状态日志
systemctl status spring-boot.service
正常日志
journalctl
错误日志
journalctl -xe
在编辑完成服务单元文件后,运行以下命令来重新加载systemd管理器配置:
sudo systemctl daemon-reload
运行以下命令来启动和启用你的新服务:
sudo systemctl start spring-boot-service
sudo systemctl enable spring-boot-service
运行以下命令来验证你的服务是否已经成功启动:
sudo systemctl status spring-boot-service
#启动一个服务 supervisorctl start <service_name> #停止一个服务 supervisorctl stop <service_name> #重启一个服务 supervisorctl restart <service_name> 查看所有服务的状态: supervisorctl status 查看某个服务的状态: supervisorctl status <service_name> 查看所有服务的详细信息: supervisorctl -c /path/to/supervisord.conf status 重新加载配置: supervisorctl reread supervisorctl update 关闭 Supervisor: supervisorctl shutdown
[program:spring-admin] command=/usr/local/java/jdk1.8.0_391/bin/java -jar -Xms256m -Xmx256m -Dspring.profiles.active=dev -Dserver.port=8801 /data/springBoot/sd-api/spring-admin-0.0.1-SNAPSHOT.jar directory=/data/springBoot/sd-api/ environment=NACOS_NAMESPACE="d90cb455-****-61458cb3cf1a",NACOS_HOST="172.****.251",NACOS_PASSWORD="***" autostart=true startsecs=10 autorestart=true startretries=3 user=root priority=999 redirect_stderr=true stdout_logfile_maxbytes=20MB stdout_logfile_backups = 20 stopasgroup=false killasgroup=false stdout_logfile_maxbytes=1024MB stdout_logfile=/data/springBoot/sd-api/logs/springBoot-admin.log
解释
[program:spring-admin]:定义了一个名为 spring-admin 的程序。 command:指定了启动命令,即 Java 应用程序的启动命令。在这里,它启动了一个 Java 可执行文件(JAR 文件),并设置了一些 JVM 参数和应用程序的参数,如内存大小、激活的 Spring profile、服务器端口等。 directory:指定了程序的工作目录,即程序运行时的当前工作目录。 environment:设置了环境变量。这里设置了三个环境变量:NACOS_NAMESPACE、NACOS_HOST 和 NACOS_PASSWORD。 autostart:指定了是否在 Supervisor 启动时自动启动该程序。 startsecs:指定了程序启动后的等待时间(秒),用于判断程序是否成功启动。 autorestart:指定了是否在程序意外退出后自动重启。 startretries:指定了自动重启的次数。 user:指定了程序运行的用户。 priority:指定了程序的优先级。 redirect_stderr:指定了是否将标准错误重定向到标准输出。 stdout_logfile_maxbytes:指定了标准输出日志文件的最大大小。 stdout_logfile_backups:指定了标准输出日志文件的备份数量。 stopasgroup 和 killasgroup:指定了是否将程序的进程和子进程组一起停止或杀死。 stdout_logfile:指定了标准输出日志文件的路径。
总的来说,如果你的需求比较简单,只需要一个轻量级的进程管理工具来启动和监控 Java 应用程序,那么 Supervisor 是一个不错的选择。而如果你需要更丰富的功能和更紧密地集成到操作系统中,那么自定义 Systemd 服务可能更适合你的需求
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。