CentOS 配置Java應(yīng)用,并設(shè)置開機(jī)自動(dòng)啟動(dòng),無需內(nèi)網(wǎng)穿透,直接上公網(wǎng)IPv6,DDNS
如今(尚未開通IPv6的地區(qū)除外),通過設(shè)置寬帶貓(需要超級(jí)用戶,怎么拿到可以百度,但大多數(shù)不準(zhǔn),我用的寬帶貓是河北移動(dòng)吉比特GM219-S<重點(diǎn)是有USB接口哦,有它就太方便了,hiahiahia~>,破解超級(jí)用戶密碼需要點(diǎn)技巧,我也是小白,有需要的可以私信我一起探討)已經(jīng)能很輕松的拿到公網(wǎng)IPv6了。有了公網(wǎng)IPv6就能很方便的干某些事了,比如搭建私有網(wǎng)盤。
本文主要記錄解決公網(wǎng)IPv6的DDNS問題。其中本文的jar包是解析到阿里云DDNS程序包。
jar包原作者視頻鏈接Java寫的阿里域名DDNS程序 配置簡(jiǎn)單運(yùn)行穩(wěn)定 還可以多域名更新,在此,向原作者卡姆姬致敬!
一、CentOS自動(dòng)連接WiFi
(一)連接WiFi
1、暫時(shí)連接WiFi,以便通過WiFi上傳/下載
#查看ip
ip addr
#配置網(wǎng)卡,wlo1是我的網(wǎng)卡
ip link set wlo1 up
#設(shè)置要連接的WiFi的名稱和密碼
wpa_supplicant -B -i wlo1 -c <(wpa_passphrase “WiFi名稱” “WiFi密碼”)
#在wlo1上發(fā)出DHCP請(qǐng)求,即通過wlo1連接網(wǎng)絡(luò)
dhclient wlo1
#測(cè)試
ping www.baidu.com
(二)安裝SSH
1、安裝SSH,開啟遠(yuǎn)程登錄CentOS
yum install openssh-server
(三)自動(dòng)連接WiFi
1、開機(jī)自動(dòng)連接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密碼”
#設(shè)置開機(jī)啟動(dòng)
systemctl enable NetworkManager
2、nmcli其他可能用到的命令
nmcli c????????????????????????????顯示保存的所有連接
nmcli dev????????????????????????查看網(wǎng)絡(luò)設(shè)備及其狀態(tài)列表
nmcli device status???????? 查看所有網(wǎng)卡設(shè)備狀態(tài)
二、CentOS安裝Java環(huán)境
(一)上傳Java安裝包
假設(shè):
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工具
直接進(jìn)入目錄,上傳
(二)安裝Java
1、創(chuàng)建安裝目錄
mkdir /usr/local/java/
2、解壓至安裝目錄
cd /usr/local/yourproject/
tar -zxvf java.tar.gz -C /usr/local/java/
(三)設(shè)置環(huán)境變量
1、打開文件
vim /etc/profile
2、在末尾添加
# jdk-17.0.2是解壓產(chǎn)生的,也就是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、使環(huán)境變量生效
source /etc/profile
4、添加軟鏈接
ln -s /usr/local/java/jdk-17.0.2/bin/java /usr/bin/java
5、檢查
#顯示Java版本信息命令
java?-version
#運(yùn)行后顯示如下結(jié)果
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應(yīng)用開機(jī)自動(dòng)啟動(dòng)
(一)通過systemctl服務(wù)啟動(dòng)
該方式將Java應(yīng)用的啟動(dòng)腳本托管給systemctl服務(wù),通過systemctl的一系列命令配置應(yīng)用的開機(jī)啟動(dòng)。
1、創(chuàng)建service
進(jìn)入到系統(tǒng)的/usr/lib/systemd/system目錄下
cd /usr/lib/systemd/system
2、添加.service文件
使用vim創(chuàng)建一個(gè)新文件,假設(shè)我們的項(xiàng)目叫yourproject
vim yourproject.service
編寫yourproject.service
——————————————yourproject.service起——————————————
[Unit]
#服務(wù)描述
Description=yourproject
#當(dāng)前服務(wù)在某個(gè)服務(wù)啟動(dòng)之后啟動(dòng)
After=syslog.target network.target
Wants=network.target?
[Service]
#systemctl進(jìn)程運(yùn)行的類型,有多種類型,默認(rèn)為simple通過主進(jìn)程啟動(dòng)
#forking后臺(tái)啟動(dòng)也就是systemctl主進(jìn)程啟動(dòng)后會(huì)再生成一個(gè)子進(jìn)程執(zhí)行當(dāng)前服務(wù)
Type= simple
#存放應(yīng)用進(jìn)程號(hào)的文件路徑為絕對(duì)路徑
PIDFile=/home/service/pid
# ExecStart前面是java命令的絕對(duì)路徑? 后面是jar包的絕對(duì)路徑
ExecStart= /usr/local/java/jdk-17.0.2/bin/java -jar /usr/local/yourproject/yourjar.jar
#配置應(yīng)用的停止命令
ExecStop=/bin/kill -s QUIT
Restart=always
#表示給應(yīng)用分配獨(dú)立的臨時(shí)空間
PrivateTmp=true
#指定啟動(dòng)應(yīng)用的用戶
User=root
#指定用戶的用戶組
Group=root
#等待應(yīng)用的啟動(dòng)時(shí)間,單位為秒,0表示禁用,如果在配置的時(shí)間內(nèi)收到啟動(dòng)完成的信號(hào),服務(wù)被認(rèn)為執(zhí)行失敗然后自動(dòng)退出
TimeoutStartSec=0
#殺掉指定進(jìn)程,none表示沒有進(jìn)程會(huì)被殺掉,只執(zhí)行stop操作
KillMode=none?
[Install]
WantedBy=multi-user.target
——————————————yourproject.service止——————————————
上面的代碼僅需要改三處即可:Description=后面是你自己項(xiàng)目的名字、ExecStart=緊跟的是jdk的絕對(duì)目錄、ExecStart這一行最后一部分是jar包的絕對(duì)目錄。
修改之后,按Esc鍵,然后輸入:wq即可保存。
在配置文件中添加了TimeoutStartSec和KillMode兩個(gè)參數(shù)主要是為了防止java應(yīng)用程序通過systemctl啟動(dòng)成功后進(jìn)程會(huì)被自動(dòng)干掉的問題,因?yàn)槲以谂渲玫倪^程中碰到一個(gè)問題就是在java應(yīng)用程序已經(jīng)成功啟動(dòng)一段時(shí)間后會(huì)進(jìn)程會(huì)被莫名奇妙的干掉,嘗試了多種方式,比如在配置文件中加上Restart=always參數(shù)發(fā)現(xiàn)應(yīng)用會(huì)被不停地殺掉重啟不能解決根本問題,最后發(fā)現(xiàn)配置文件中添加TimeoutStartSec=0和KillMode=none后問題解決。
3、如果項(xiàng)目更改了
#先執(zhí)行,使配置生效
sudo ? systemctl daemon-reload
#再運(yùn)行,啟動(dòng)服務(wù)
sudo ? systemctl start yourproject.service
4、將應(yīng)用的執(zhí)行命令設(shè)置為開機(jī)自動(dòng)啟動(dòng)
#設(shè)置開機(jī)啟動(dòng)
sudo systemctl enable yourproject.service
#設(shè)置開機(jī)不啟動(dòng)
sudo systemctl disable yourproject.service
5、手動(dòng)啟動(dòng)/關(guān)閉/重啟應(yīng)用程序
#手動(dòng)啟動(dòng)
sudo systemctl start yourproject.service
#手動(dòng)關(guān)閉
sudo systemctl stop yourproject.service
#手動(dòng)重啟
sudo systemctl restart yourproject.service
6、檢查
如果啟動(dòng)異??赏ㄟ^systemctl status查看應(yīng)用啟動(dòng)的狀態(tài)
#查看開啟狀態(tài)
sudo systemctl status yourproject.service
四、寫在后面的話
(一)部分命令可能沒有(因?yàn)槲沂亲钚』惭b的CentOS),導(dǎo)致需要用到的安裝命令
命令????????????????????????安裝
ifconfig????????????????????yum install net-tools.x86_64
vim????????????????????????? yum install yum