服務(wù)開機(jī)啟動配置
本文將配置myapp(開發(fā)的java應(yīng)用服務(wù))和文件服務(wù)fastdfs服務(wù)舉例脆丁。
一奢讨、創(chuàng)建啟動腳本
首先需要為自己的應(yīng)用和服務(wù)創(chuàng)建一個(gè)批處理文件稚叹,手動執(zhí)行改批處理文件可啟動服務(wù)。
比如創(chuàng)建了一個(gè)startup.sh拿诸。
批處理文件中需要注意的是路徑要采用絕對路徑扒袖,如:
#!/bin/bash
AppPath=/home/myapp
JAR_NAME=myapp-0.0.1.jar
LOG_PATH=$AppPath/appLog/app.log
pid=`ps -ef|grep $JAR_NAME |grep -v grep|grep -v kill|awk '{print $2}'`
echo "....................................................................."
if [ ${pid} ]; then
echo "Try to kill progress pid:${pid}..."
kill -9 $pid
echo "pid:${pid} stoped!"
else
echo "${JAR_NAME} is NOT running..."
fi
echo "....................................................................."
sleep 2
echo "....................................................................."
echo "${JAR_NAME} begin start..."
nohup java -jar -Xms16g -Xmx16g -Dloader.path=$AppPath/lib -Dlog4j.configurationFile=$AppPath/config/log4j/log4j2.xml $AppPath/$JAR_NAME >> $LOG_PATH 2>&1 &
echo "${JAR_NAME} started!"
echo "....................................................................."
echo "....................................................................."
echo "........................Here is the app.log.........................."
echo "....................................................................."
tail -f $LOG_PATH
再如:
#!/bin/bash
nohup /home/fastdfs/fileserver server &>/home/fastdfs/log/app.log
都需要用絕對路徑。
二亩码、添加到自啟動季率,2種方式
方式一,配置到/etc/rc.local上
這種方式倒是服務(wù)器遠(yuǎn)程直連一直打印輸出描沟,無法回到主界面飒泻。
1、腳本配置到/etc/rc.local上
vi /etc/rc.local
#export JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.342.b07-1.el7_9.x86_64
#export CLASSPATH=$:CLASSPATH:$JAVA_HOME/lib/
#export PATH=$PATH:$JAVA_HOME/bin
#app應(yīng)用
cd /home/app
sudo sh startup.sh & # 以root執(zhí)行吏廉,不然可能會出現(xiàn)權(quán)限錯(cuò)誤泞遗,&表示后臺執(zhí)行
#fastdfs服務(wù)
cd /home/fastdfs
sudo sh startup.sh & # 以root執(zhí)行,不然可能會出現(xiàn)權(quán)限錯(cuò)誤席覆,&表示后臺執(zhí)行
注意
1史辙、若無法啟動,嘗試將export的注釋解開試下娜睛。
2髓霞、默認(rèn)系統(tǒng)的/etc/rc.d/rc.local是沒有執(zhí)行權(quán)限的,需要給予開機(jī)權(quán)限畦戒,否則無法開機(jī)自啟方库。
#授權(quán)
chmod +755 /etc/rc.d/rc.local
方式二,系統(tǒng)服務(wù)
1、創(chuàng)建一個(gè)服務(wù)文件障斋,用于啟動腳本纵潦。服務(wù)文件應(yīng)該被保存到 /etc/systemd/system 目錄中徐鹤。以 root 用戶身份運(yùn)行以下命令:
touch /etc/systemd/system/myapp.service
vim /etc/systemd/system/myapp.service
touch /etc/systemd/system/fastdfs.service
vim /etc/systemd/system/fastdfs.service
#或者如下創(chuàng)建
nano /etc/systemd/system/myapp.service #ctrl+x 保存,也可用vim
2邀层、在編輯器中添加以下內(nèi)容到 myapp.service 文件中,fastdfs服務(wù)同理:
[Unit]
Description=myapp開機(jī)啟動腳本
After=network.target
[Service]
ExecStart=/home/myapp/startup.sh
Restart=always
User=root
[Install]
WantedBy=multi-user.target
確保修改 Description 字段為你自己的腳本描述返敬,并將 ExecStart 字段指向你的腳本的實(shí)際路徑。
3寥院、保存并關(guān)閉文件劲赠。然后運(yùn)行以下命令使 systemd 重新加載服務(wù)文件,并啟動服務(wù)設(shè)置開機(jī)自啟,fastdfs同理秸谢。
chmod +755 /home/myapp/startup.sh
systemctl daemon-reload
systemctl start myapp
systemctl enable myapp
現(xiàn)在凛澎,你的腳本將在系統(tǒng)啟動時(shí)自動運(yùn)行。
請注意估蹄,你需要以 root 用戶身份運(yùn)行以上命令塑煎。此外,確保你的腳本不會在系統(tǒng)啟動時(shí)出現(xiàn)任何錯(cuò)誤臭蚁,否則會導(dǎo)致系統(tǒng)啟動失敗最铁。