本文主要講linux系統下運行jar包,至於如何打包jar包,放到linux系統下可以參考其他的博客。
在linux系統下運行jar包的命令如下:
1、java -jar xxxxx.jar // 當前ssh窗口被鎖定,可按CTRL + C打斷程序運行,或直接關閉窗口,程序退出
2、java -jar xxxxx.jar & //當前ssh窗口不被鎖定,但是當窗口關閉時,程序中止運行。
3、nohup Java -jar xxxxxx.jar & //意思是不掛斷運行命令,當賬戶退出或終端關閉時,程序仍然運行
這個只要部署一次,然后實際運行一下就會發現問題,然后自己搜索。那么如何寫一個shell腳本,直接運行resart.sh腳本就好了。
經過幾次試驗終於寫好了。如下:restart.sh
pid=`ps -ef | grep rulecc-1.0.0 | grep -v grep |awk '{print $2}'` if [ $pid ]; then echo :App is running pid=$pid kill -9 $pid fi nohup java -jar /apps/rulecc-1.0.0/rulecc-0.0.1-SNAPSHOT.jar & tail -f nohup.out
對於一些大牛很快就能看懂,如果你跟我一樣,一點linux腳本的基礎和經驗也沒有,那么下面的知識和操作有助於你能理解:
1、linux環境下運行了java程序之后,如何查看啟動程序的線程?如何關閉運行程序的線程?
第一步:在運行app的路徑下輸入命令:jps
第二步:當你找到對應的app,那么你一定可以找到對應的線程;沒有找到也沒有關系,到網上搜搜,或者問問身邊寫過的人,也能找到。假設目標線程的pid=12522
第三步:“殺死”運行app的線程: kill -9 12522
第四步:重新運行java程序。
第五步:反復操作前面四步。多做幾次你一定會懂是什么意思。
下面就來解釋一下restart.sh腳本的意思:
第一行:將運行目標的線程pid賦值給pid變量
第二行:判斷pid是否在運行
第三行:如果在運行就打印運行的pid
第四行:“殺死”運行的pid
第五行:運行java程序。
第六行:自己搜一下吧。
問題:在寫restart.sh的時候遇到了幾個問題,都順利解決了,提供給大家參考,如果有疑問還是沒有解決的,歡迎留言。
1、xxx.sh腳本運行不被允許。
2、syntax error near unexpected token。出現這個問題的原因是由於windows環境下的換行符在linux環境下無法識別,所以要轉換成linux環境下的。
這個在百度經驗里面會有,這里就不羅嗦了。
===============================
下面提供一些常用的linux環境下的運行語句:
[參考文章]
1、http://blog.csdn.net/wggorking/article/details/53925907
2、https://jingyan.baidu.com/article/9f63fb91d014b8c8410f0e7a.html
3、http://blog.csdn.net/catoop/article/details/50588851
4、http://blog.csdn.net/qq_30739519/article/details/51115075