java系统部署到Linux

news2024/9/25 3:25:29

1、安装java 1.8JDK

卸载Open JDK

首先,我们先检查系统是否自带了 JDK。输入命令

java -verison

在这里插入图片描述
批量删除

rpm -qa | grep java | xargs rpm -e --nodeps

下载并安装JDK

我们在 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

jdk安装参考里面附带了Oracle账号

2、system 服务管理 Java 应用程序

创建服务单元文件

在 /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管理器配置

在编辑完成服务单元文件后,运行以下命令来重新加载systemd管理器配置:

sudo systemctl daemon-reload

启动并启用服务:

运行以下命令来启动和启用你的新服务:

sudo systemctl start spring-boot-service
sudo systemctl enable spring-boot-service

验证服务状态:

运行以下命令来验证你的服务是否已经成功启动:

sudo systemctl status spring-boot-service

3、Supervisor 管理 Java 应用程序

supervisorctl 命令

#启动一个服务
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

Supervisor 配置示例

[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:指定了标准输出日志文件的路径。

4、Supervisor 和自定义 Systemd 服务的对比

Supervisor:

优点:
  1. 简单易用:Supervisor 的配置相对简单,上手较容易。
  2. 跨平台支持:可以在不同的操作系统上使用。
  3. 功能丰富:提供了丰富的进程管理功能,如进程监控、自动重启等。
缺点:
  1. 对于一些高级功能,可能需要额外的配置。
  2. 不如 Systemd 那样紧密集成到操作系统中。

自定义 Systemd 服务(例如 spring-boot.service):

优点:
  1. 紧密集成到操作系统中:Systemd 是现代 Linux 系统中默认的服务管理工具,自定义服务可以更紧密地集成到系统中。
  2. 更丰富的功能:Systemd 提供了更丰富的功能和选项,如依赖管理、进程隔离、资源限制等。
  3. 灵活性和定制性:你可以完全控制你的自定义服务的行为,以满足特定的需求。
缺点:
  1. 配置复杂:相比 Supervisor,自定义 Systemd 服务的配置可能更加复杂一些。
  2. 学习曲线较陡:Systemd 提供了大量的功能和选项,需要花一些时间来学习和掌握。

总的来说,如果你的需求比较简单,只需要一个轻量级的进程管理工具来启动和监控 Java 应用程序,那么 Supervisor 是一个不错的选择。而如果你需要更丰富的功能和更紧密地集成到操作系统中,那么自定义 Systemd 服务可能更适合你的需求

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1533985.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

操作系统——处理机管理(2)

四、作业的基本概念 8、作业的定义 是指用户在一次计算过程或一次事务处理的过程中要求计算机系统所做的工作的总称。 通常把一次事务计算中从输入开始到输出结束&#xff0c;用户要求计算机所做的全部工作称为一个作业。 用户的角度&#xff1a;作业就是用户要求计算机完…

运维人少,如何批量管理上百个微服务、上千条流水线?

作者&#xff1a;周静 随着微服务和云原生技术的发展&#xff0c;一个业务系统往往由多个微服务应用组成&#xff0c;多个业务方向涉及几十上百应用。每个应用研发过程又划分为测试、预发、生产多条流水线&#xff0c;也即成百上千条流水线。而一个企业下通常只有 1&#xff5…

【JS】替换文本为emjio表情

最终效果展示 T1 T2 T3 T4 需求 把评论你好帅啊啊啊[开心][开心]&#xff0c;[开心] 替换为图片 思路 正则match提取[开心]到一个数组数组去重创建img标签img标签转文本. 。例&#xff1a;&#xff08;el.outerHTML&#xff09;&#xff0c;将el元素转文本字符串replaceAll…

Javaee 进程调度的基本过程

进程 一个程序,运行起来/跑起来,在操作系统中,就会出现一个对应的进程, 进程其实就是一个跑起来的应用程序 让程序跑起来就是可以双击快捷方式或者在开始菜单中 单击该选项 . 在我们的电脑上 可以打开任务管理器 可以看到很多进程: 我们可以把运行起来的可执行文件 称为进程 …

[C语言]——操作符详解

目录 一.操作符的分类 二.二进制和进制转换 1.二进制转十进制 2.二进制转八进制和十六进制 2.1二进制转八进制 2.2二进制转十六进制 三.原码、反码、补码 四.移位操作符 1.左移操作符 2.右移操作符 五.位操作符&#xff1a;&、|、^、~ 练习1&#xff1a;编写代码实…

两个现货白银理财产品投资技术分析方法

现货白银是投资市场中比较受欢迎的理财产品。要投资现货白银&#xff0c;我们需要具备一定的金融投资经验。下面我们就来讨论一下&#xff0c;在现货白银这个理财产品的投资过程中&#xff0c;常常用到的一些技术分析方法。 宏观的趋势分析法。在现货白银理财产品投资中&#x…

nodejs pkg打包跨平台执行文件,带.node插件(sharp、sqlite3)

在nodejs引入的第三方库中,大部分插件都是nodejs原生开发,使用pkg可以快速打包,生成windows、linux(ubuntu、centOS等)、麒麟系统下面执行文件。遇到了第三方插件gdal、sharp、sqlite3,在webstorm中打包生成执行文件,跨平台部署的时候会出现找不到###.node文件,需要获取部…

Harbor介绍

1.什么是Harbor Harbor是一个开源的企业级Docker Registry管理项目&#xff0c;由VMware公司开源。 Harbor提供了比Docker官方公共镜像仓库更为丰富和安全的功能&#xff0c;尤其适合企业环境使用。以下是Harbor的一些关键特性&#xff1a; 权限管理&#xff08;RBAC&#x…

什么是内网穿透?如何实现内网穿透?

关注微信公众号&#xff1a;怒码少年&#xff0c;回复关键词【电子书】可以免费获取计算机相关电子书 大家好&#xff0c;我是小码。 如果你能上线或者部署你的项目以便于面试官查看&#xff0c;无疑是大大增加了真实性。使用上一篇讲到的如何使用腾讯云宝塔Linux面板部署项目…

QT QGraphicsView 在鼠标点击处进行放大缩小

一、前段时间在用QGraphicsView对图元进行放大缩小时&#xff0c;发现图形总是越来越跑偏&#xff0c;无法像地图中那样&#xff0c;点击哪里就能放大哪个地方。 如下所示&#xff1a;此时放大缩小的焦点并不在鼠标位置 方法&#xff0c;使用QGraphicsView类的设置属性函数.在构…

蜂窝物联智慧果园案例:福建万春寨农业科技有限公司醒狮智慧芦柑园

项目背景 永春醒狮农场前身永春醒狮场是永春最早种植芦柑基地之一&#xff0c;十年前因为黄龙病全部死亡。今年由万春寨农业牵头&#xff0c;重新开荒种植芦柑。此地&#xff0c;虽然海拔高、树木葱郁&#xff0c;然后可用灌溉水源却非常缺乏&#xff0c;如何实现节水灌溉问题成…

GRE简介

定义 通用路由封装协议GRE&#xff08;Generic Routing Encapsulation&#xff09;可以对某些网络层协议&#xff08;如IPX、IPv6、AppleTalk等&#xff09;的数据报文进行封装&#xff0c;使这些被封装的数据报文能够在另一个网络层协议&#xff08;如IPv4&#xff09;中传输…

vm-workstation win10 网络的设置

设置宿主机网络&#xff08;win10&#xff09; 1&#xff0c;在 win10宿主机上为虚拟机设置192.168.6.0/24 的网段 VM-workstation 网络设置 2&#xff0c;vm-workstation 软件设置

工控机丨丨工业电脑丨工控计算机丨工业一体机丨什么是工业一体机

工业一体机俗称工控机&#xff0c;是一种专门为工业应用而设计的计算机设备&#xff0c;主要应用于工厂、车间、仓库等工业场所。此外工控机还叫做工控计算机&#xff0c;通常采用工业级主板、工业级CPU、工业级硬盘、工业级内存和工业级电源等硬件组件&#xff0c;以确保其在高…

NetSuite 固定资产Write-Off的撤回操作

之前我们有说到如果是Sale了固定资产后发现有误&#xff0c;需要撤回操作该如何处理。这篇文章来补充一下&#xff0c;如果是误Write-Off了一个固资该如何处理&#xff0c;其逻辑与Sale的撤回基本一致&#xff0c;但是少了删除Sale Invoice的步骤。 我们用一个实际的例子来进行…

ISIS默认层级实验简述

ISIS被划分为三个层级&#xff1a;Level 1、Level 2和Level 1-2。 默认情况下&#xff0c;ISIS路由器属于level 1-2,是指同时支持Level 1和Level 2的路由器。路由器既可以在同一个自治系统内部进行路由选择&#xff0c;也可以将路由信息传递到其他自治系统。 实验拓扑图&#…

鸿蒙一次开发,多端部署(一)简介

背景 随着终端设备形态日益多样化&#xff0c;分布式技术逐渐打破单一硬件边界&#xff0c;一个应用或服务&#xff0c;可以在不同的硬件设备之间随意调用、互助共享&#xff0c;让用户享受无缝的全场景体验。而作为应用开发者&#xff0c;广泛的设备类型也能为应用带来广大的…

HTML5:七天学会基础动画网页(end)

想了想还是有一点东西还没说&#xff0c;当然这块内容也比较简单&#xff0c;就是当我们有一段完整素材时&#xff0c;如下: 我在网上随便找的素材&#xff0c;当然我们平时在使用素材时要注意尊重他人的著作权&#xff0c;不管是字体图片还是别的&#xff0c;不然后面不小心侵…

20岁小姑娘 半年用消费返现模式 做了2000多万销售额!!

一个年仅十几岁的小姑娘&#xff0c;仅凭一套价值1900元的化妆品&#xff0c;在短短27天内便创下了高达2000多万元的销售额&#xff0c;这听起来似乎有些不可思议。然而&#xff0c;她确实做到了&#xff0c;那么&#xff0c;她究竟是如何做到的呢&#xff1f; 答案其实并不复杂…

使用aop做权限控制

1、pom.xml文件内容如下&#xff1a; <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http:/…