Linux開機自動啓動nginx Java-Jar包

以CentOS 7.0 爲例

方式一:rc.local

項目目錄爲 /project

1、在項目目錄創建shell腳本

vi /project/ylkj-service.sh

以下爲腳本內容: 

#!/bin/bash

#export JAVA_HOME=/usr/lib/jvm/java-1.8.0
#export JRE_HOME=/usr/lib/jvm/java-1.8.0/jre
#export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib:$CLASSPATH
#export PATH=$JAVA_HOME/bin:$PATH

echo "=============restart firewall =================="
service iptables restart
echo "==============start java server============"
cd /project
nohup java -jar AIServicePlatform.jar &
echo "==============start nginx============"
cd /usr/local/nginx/sbin
./nginx -c /usr/local/nginx/conf/nginx.conf

啓動jar包的多種方式解決 不同linux環境下可能存在的問題

#正常啓動jar包的命令
nohup java -jar AICloudSaas.xjar &

#遇到 臨時文件權限不足的
nohup java -Djava.io.tmpdir=/tmpdir -jar AICloudSaas.xjar &

#遇到服務器 編碼問題的
 nohup java -Dfile.encoding=utf-8  -jar AICloudSaas.xjar &

Java環境變量導入可以 通過以下命令查詢得到,根據情況Java環境變量可以不需要

whereis java
which java 
echo $JAVA_HOME
echo $PATH

 

2、編輯開機啓動文件 /etc/rc.d/rc.local 

vi /etc/rc.d/rc.local 

增加行 /project/ylkj-service.sh

3、執行文件授權命令:

chmod +x /etc/rc.d/rc.local

 chmod +x /project/ylkj-service.sh

4、檢查腳本是否配置正常  

bash /etc/rc.d/rc.local

顯示執行正常使用reboot命令重啓

可能出現的錯誤:由於shell腳本使用windows編輯拷貝到Linux下就會出現類似情況

執行以下命令即可:

sed -i 's/\r$//' /etc/rc.local 

sed -i 's/\r$//' /project/ylkj-service.sh

方法二:chkconfig


/etc/init.d是/etc/rc.d/init.d的軟鏈接,當Linux啓動時,會尋找這些目錄中的服務腳本,並根據腳本的運行級別確定不同的啓動級別。

1、將腳本移動到/etc/rc.d/init.d目錄下

#創建執行腳本
vi /etc/rc.d/init.d/ylkj-service.sh

#腳本內容爲:
#!/bin/sh
#chkconfig: 2345 80 90
#description:ylkj-service
echo "==============掛載NFS磁盤============"
mount -t nfs 192.168.3.20:/data/nfs /home/fileserver
mount -t nfs 192.168.3.20:/data/project /home/web/project

echo "==============start java server============"
cd /home/web/project
nohup java -jar AICloudSaas.xjar &

mount 掛卸NFS磁盤開機thg怎麼也不生效。瞭解的同學可以留個言

服務不支持 chkconfig 的解決方法

系統服務,在chkconfig --add  servername的時候老是提示服務不支持 chkconfig,主要是缺少前三行代碼。
#!/bin/sh
#chkconfig: 2345 80 90
#description:auto_run
第一行,告訴系統使用的shell,所以的shell腳本都是這樣。
第二行,chkconfig後面有三個參數2345,80和90告訴chkconfig程序,需要在rc2.d~rc5.d目錄下,創建名字爲 S80auto_run的文件連接,連接到/etc/rc.d/init.d目錄下的的auto_run腳本。第一個字符是S,系統在啓動的時候,運行腳 本auto_run,就會添加一個start參數,告訴腳本,現在是啓動模式。同時在rc0.d和rc6.d目錄下,創建名字爲K90auto_run的 文件連接,第一個字符爲K,個系統在關閉系統的時候,會運行auto_run,添加一個stop,告訴腳本,現在是關閉模式。
注意上面的三行中,第二,第三行是必須的,否則在運行chkconfig --add auto_run時,會報錯。


2、授予腳本可執行權限

chmod +x /etc/rc.d/init.d/ylkj-service.sh


3、添加腳本到開機自動啓動項目中
 

#進入目錄
cd /etc/rc.d/init.d
#添加執行腳本執行權限
chkconfig --add ylkj-service.sh
chkconfig ylkj-service.sh on

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章