欢迎光临散文网 会员登陆 & 注册

CentOS 配置Java应用,并设置开机自动启动,无需内网穿透,直接上公网IPv6,DDNS

2022-03-10 23:16 作者:十代思域zhen  | 我要投稿

如今(尚未开通IPv6的地区除外),通过设置宽带猫(需要超级用户,怎么拿到可以百度,但大多数不准,我用的宽带猫是河北移动吉比特GM219-S<重点是有USB接口哦,有它就太方便了,hiahiahia~>,破解超级用户密码需要点技巧,我也是小白,有需要的可以私信我一起探讨)已经能很轻松的拿到公网IPv6了。有了公网IPv6就能很方便的干某些事了,比如搭建私有网盘。

本文主要记录解决公网IPv6的DDNS问题。其中本文的jar包是解析到阿里云DDNS程序包。

jar包原作者视频链接Java写的阿里域名DDNS程序 配置简单运行稳定 还可以多域名更新,在此,向原作者卡姆姬致敬!

一、CentOS自动连接WiFi

  • (一)连接WiFi

  • 1、暂时连接WiFi,以便通过WiFi上传/下载

#查看ip

ip addr

#配置网卡,wlo1是我的网卡

ip link set wlo1 up

#设置要连接的WiFi的名称和密码

wpa_supplicant -B -i wlo1 -c <(wpa_passphrase “WiFi名称” “WiFi密码”)

#在wlo1上发出DHCP请求,即通过wlo1连接网络

dhclient wlo1

#测试

ping www.baidu.com

  • (二)安装SSH

  • 1、安装SSH,开启远程登录CentOS

yum install openssh-server

  • (三)自动连接WiFi

  • 1、开机自动连接WiFi

#安装NetworkManager

yum install -y NetworkManager

#安装NetworkManager-wifi

yum install NetworkManager-wifi

#重启

reboot

#启用无线

nmcli r wifi on

#扫描WiFi

nmcli dev wifi

#连接WiFi

nmcli dev wifi connect “WiFi名称” password “WiFi密码”

#设置开机启动

systemctl enable NetworkManager

  • 2、nmcli其他可能用到的命令

nmcli c                            显示保存的所有连接

nmcli dev                        查看网络设备及其状态列表

nmcli device status         查看所有网卡设备状态

二、CentOS安装Java环境

  • (一)上传Java安装包

假设:

Java安装包                                /usr/local/yourproject/                需要自建

Java安装路径                            /usr/local/java/jdk-17.0.2/           需要自建

yourjar.jar包存放路径                /usr/local/yourproject/                 需要自建

config.yml存放路径                    /usr/local/yourproject/                需要自建

yourproject.service存放路径      /usr/lib/systemd/system/            无需自建

  • 1、用HFS

cd /usr/local/

mkdir yourproject

cd yourproject

wget http://HFS:xxxx/java.tar.gz

  • 2、用宝塔SSH工具

直接进入目录,上传

  • (二)安装Java

  • 1、创建安装目录

mkdir /usr/local/java/

  • 2、解压至安装目录

cd /usr/local/yourproject/

tar -zxvf java.tar.gz -C /usr/local/java/

  • (三)设置环境变量

  • 1、打开文件

vim /etc/profile

  • 2、在末尾添加

# jdk-17.0.2是解压产生的,也就是Java的版本

————————————————profile起————————————————

export JAVA_HOME=/usr/local/java/jdk-17.0.2

export JRE_HOME=${JAVA_HOME}/jre

export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib

export PATH=${JAVA_HOME}/bin:$PATH

————————————————profile止————————————————

  • 3、使环境变量生效

source /etc/profile

  • 4、添加软链接

ln -s /usr/local/java/jdk-17.0.2/bin/java /usr/bin/java

  • 5、检查

#显示Java版本信息命令

java -version

#运行后显示如下结果

java version "17.0.2" 2022-01-18 LTS

Java(TM) SE Runtime Environment (build 17.0.2+8-LTS-86)

Java HotSpot(TM) 64-Bit Server VM (build 17.0.2+8-LTS-86, mixed mode, sharing)

三、CentOS配置java应用开机自动启动

  • (一)通过systemctl服务启动

该方式将Java应用的启动脚本托管给systemctl服务,通过systemctl的一系列命令配置应用的开机启动。

  • 1、创建service

进入到系统的/usr/lib/systemd/system目录下

cd /usr/lib/systemd/system

  • 2、添加.service文件

使用vim创建一个新文件,假设我们的项目叫yourproject

vim yourproject.service

编写yourproject.service

——————————————yourproject.service起—————————————

[Unit]

#服务描述

Description=yourproject

#当前服务在某个服务启动之后启动

After=syslog.target network.target

Wants=network.target 

[Service]

#systemctl进程运行的类型,有多种类型,默认为simple通过主进程启动

#forking后台启动也就是systemctl主进程启动后会再生成一个子进程执行当前服务

Type= simple

#存放应用进程号的文件路径为绝对路径

PIDFile=/home/service/pid

# ExecStart前面是java命令的绝对路径  后面是jar包的绝对路径

ExecStart= /usr/local/java/jdk-17.0.2/bin/java -jar /usr/local/yourproject/yourjar.jar

#配置应用的停止命令

ExecStop=/bin/kill -s QUIT

Restart=always

#表示给应用分配独立的临时空间

PrivateTmp=true

#指定启动应用的用户

User=root

#指定用户的用户组

Group=root

#等待应用的启动时间,单位为秒,0表示禁用,如果在配置的时间内收到启动完成的信号,服务被认为执行失败然后自动退出

TimeoutStartSec=0

#杀掉指定进程,none表示没有进程会被杀掉,只执行stop操作

KillMode=none 

[Install]

WantedBy=multi-user.target

——————————————yourproject.service止—————————————

上面的代码仅需要改三处即可:Description=后面是你自己项目的名字、ExecStart=紧跟的是jdk的绝对目录、ExecStart这一行最后一部分是jar包的绝对目录。

修改之后,按Esc键,然后输入:wq即可保存。

在配置文件中添加了TimeoutStartSec和KillMode两个参数主要是为了防止java应用程序通过systemctl启动成功后进程会被自动干掉的问题,因为我在配置的过程中碰到一个问题就是在java应用程序已经成功启动一段时间后会进程会被莫名奇妙的干掉,尝试了多种方式,比如在配置文件中加上Restart=always参数发现应用会被不停地杀掉重启不能解决根本问题,最后发现配置文件中添加TimeoutStartSec=0和KillMode=none后问题解决。

  • 3、如果项目更改了

#先执行,使配置生效

sudo   systemctl daemon-reload

#再运行,启动服务

sudo   systemctl start yourproject.service

  • 4、将应用的执行命令设置为开机自动启动

#设置开机启动

sudo systemctl enable yourproject.service

#设置开机不启动

sudo systemctl disable yourproject.service

  • 5、手动启动/关闭/重启应用程序

#手动启动

sudo systemctl start yourproject.service

#手动关闭

sudo systemctl stop yourproject.service

#手动重启

sudo systemctl restart yourproject.service

  • 6、检查

如果启动异常可通过systemctl status查看应用启动的状态

#查看开启状态

sudo systemctl status yourproject.service

四、写在后面的话

  • (一)部分命令可能没有(因为我是最小化安装的CentOS),导致需要用到的安装命令

命令                        安装

ifconfig                    yum install net-tools.x86_64

vim                          yum install yum


CentOS 配置Java应用,并设置开机自动启动,无需内网穿透,直接上公网IPv6,DDNS的评论 (共 条)

分享到微博请遵守国家法律