Nexus3自動重啟

Nexus3自動重啟

ZONGRU Li
7 min readNov 21, 2022

前置作業,先建Nexus:

先準備個機台演練:

RHEL-8.6.0_HVM-20220503-x86_64–2-Hourly2-GP2

#先更新安裝檔:
sudo yum update -y

#確認可以安裝的jdk:
sudo yum list|grep jdk

#安裝jdk:
sudo yum install java-1.8.0-openjdk.x86_64 -y

#安裝wget:
sudo yum install wget -y
#找到Nexus下載點後,用wget下載:
wget https://download.sonatype.com/nexus/3/nexus-3.43.0-01-unix.tar.gz
LINK
#搬到/opt下解壓縮
sudo mv nexus-3.43.0-01-unix.tar.gz /opt/

#到/opt把它解壓縮(不看過程就不帶v),然後得到兩個目錄:
cd /opt
sudo tar zxf nexus-3.43.0-01-unix.tar.gz
#建立新啟動帳號:
sudo adduser nexus

#更改剛剛解壓縮的目錄所有者給上述啟動用帳號:
sudo chown -R nexus:nexus nexus-3.43.0-01
sudo chown -R nexus:nexus sonatype-work

#確認:
ll
#調整Nexus應用程式的啟動身分:
sudo vi /opt/nexus-3.43.0-01/bin/nexus.rc

#將裡面以下內容:
run_as_user=""

#更改為以下並儲存
#run_as_user=""
run_as_user="nexus"
#缺換帳號身分:
sudo su - nexus

#啟動Nexus:
/opt/nexus-3.43.0-01/bin/nexus start

#確認:
ps -ef|grep nexus

撰寫開機自動啟動

Ubuntu作法參考

官網的Nexus3建立成Service方式(LINK):

可以點進去看看

整理如下

#確認run_as_user有調整給nexus帳號:
#用root建立link:
sudo ln -s /opt/nexus-3.43.0-01/bin/nexus /etc/init.d/nexus
#接著是chkconfig設定,這是一個init.d裡的起始腳本的工具,透過這個來起動Nexus:
cd /etc/init.d
sudo chkconfig --add nexus
sudo chkconfig --levels 345 nexus on

#其中上面中的add的指令就是把Nexus納入到Service內執行啟動或關閉
#另外chkconfig透過link將Nexus服務註冊道系統啟動腳本去

#記得在執行這個前先關掉既有的Nexus:
sudo kill 9 {Nexus Pid}
sudo service nexus start

確認目前服務:

重啟機台後重登確認:

讚!

這邊為了其他方式實驗,快速將chkconfig設置解除:

#我先將上面的chkconfig 啟動nexus的部分解除
#先確認指令:
sduo chkconfig --help
#確認nexus是否有註冊到chkconfig指令:
sudo chkconfig --list
#移除chkconfig的nexus設定:
sudo chkconfig --del nexus
#再次確認指令:
sudo chkconfig --list
#解除link,先確認link:
ls /etc/init.d/nexus -l
#解除Symbolic Links:
sudo rm /etc/init.d/nexus

這樣前面設置的chkconfig就移除了

解除後參考另外官網還有常見的服務註冊作法(LINK)

但是這段後來發現也是做完Symlink的子項

所以我這邊還要把Symlink加回去...

#確認run_as_user有調整給nexus帳號:
#用root建立link:
sudo ln -s /opt/nexus-3.43.0-01/bin/nexus /etc/init.d/nexus

然後加上實際systemd建置:

先簡單看一下既有的systemd服務有哪些:

#root編輯一個nexus的service:
sudo vi /etc/systemd/system/nexus.service

#內容如下gist:
好了儲存!
#依樣先把既有的Nexus關掉:
ps -ef|grep nexus
sudo kill 9 {Nexus Pid}
#重Load daemon,建立開機重啟Nexus,啟動Nexus服務:
sudo systemctl daemon-reload
sudo systemctl enable nexus.service
sudo systemctl start nexus.service
#可以看看狀態:
sudo systemctl status nexus

#另一種方式確認運作:
ps -ef|grep nexus

這邊怪怪的,沒有正常運作

#所以補一個restart重啟:
sudo systemctl restart nexus.service
#之後可以確認log:
tail -f /opt/sonatype-work/nexus3/log/nexus.log

一樣暴力關機後再開機看看:

看起來也沒問題

#還是確認一下Service狀態:
sudo systemctl status nexus

看起來也沒問題!

--

--

ZONGRU Li
ZONGRU Li

Written by ZONGRU Li

2022/11/17 開源部分個人筆記給LINE "Java程式語言討論區"社群,希望能對社群的技術學習做一點點貢獻.(掩面....記得退訂閱!

No responses yet