Linux環境啟動jar
大家好 Linux環境啟動jar 有兩種 方式:
啟動方式1:
java -jar app.jar 前臺啟動
啟動方式2:
nohup java -jar app.jar & 後臺啟動
區別:前臺啟動ctrl+c就會關閉程式,後臺啟動ctrl+c不會關閉程式
制定控制檯的標準輸出
java -jar app.jar > catalina.out 2>&1 &
catalina.out將標準輸出指向制定檔案catalina.out
2>&1 輸出所有的日誌檔案
& 後臺啟動
對於上面的命令的解釋:
bash 中 0、1、2 三個數字分別代表 STDIN_FILENO 、 STDOUT_FILENO 、STDERR_FILENO ,即標準輸入(一般是鍵盤),標準輸出(一般是顯示屏,準確的說是使用者終端控制檯),標準錯誤(出錯資訊輸出)。
數字 含義
0 標準輸入(一般是鍵盤)
1 標準輸出(一般是顯示屏,準確的說是使用者終端控制檯)
2 標準錯誤(出錯資訊輸出)
啟動方式3:
編寫shell指令碼啟動
在app.jar 同目錄下編輯app.sh指令碼檔案
內容如下:
!/bin/sh
功能簡介:啟動app.jar 檔案
注意:在sh檔案中=賦值,左右兩側不能有空格
APP=app
APP_NAME=${APP}".jar"
log_dir=/home/jar_logs/
log_file=/home/jar_logs/app.log
command=$1
啟動
function start(){
# 日誌資料夾不存在,則建立
if [ ! -d "${log_dir}" ];then
mkdir "${log_dir}"
fi
rm -f tpid
nohup java -jar ${APP_NAME} 1>/dev/null 2>"${log_file}" &
echo $! > tpid
check
}
停止
function stop(){
tpid=ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'
if [ ${tpid} ]; then
echo 'stop process...'
kill -15 $tpid
fi
sleep 5 tpid=`ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'` if [ ${tpid} ]; then echo 'Kill Process!' kill -9 $tpid else echo 'Stop Success!' fi
}
檢查
function check(){
tpid=ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'
if [ ${tpid} ]; then
echo 'App is running.'
else
echo 'App is NOT running.'
fi
}
強制kill程序
function forcekill(){
tpid=ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'
if [ ${tpid} ]; then
echo 'Kill Process!'
kill -9 $tpid
fi
}
輸出程序號
function showtpid(){
tpid=ps -ef|grep $APP_NAME|grep -v grep|grep -v kill|awk '{print $2}'
if [ ${tpid} ]; then
echo 'process '$APP_NAME' tpid is '$tpid
else
echo 'process '$APP_NAME' is not running.'
fi
}
if [ "${command}" == "start" ]; then
start
elif [ "${command}" == "stop" ]; then
stop
elif [ "${command}" == "check" ]; then
check
elif [ "${command}" == "kill" ]; then
forcekill
elif [ "${command}" == "tpid" ];then
showtpid
else
echo "Unknow argument...."
fi
編寫完成後需要將指令碼檔案設定超級管理員許可權
chmod +x app.sh
作者:藍胖子CC7
連結:https://www.jianshu.com/p/717afc0e1708
來源:簡書
著作權歸作者所有。商業轉載請聯絡作者獲得授權,非商業轉載請註明出處。