欢迎您的来访!有源码,好建站(www.codehy.com)源码海洋源码网为您提供快速建站平台.
当前位置: 首页 > 行业资讯 > Linux服务器 >

java -jar 后台运行 linux jar包如何运行linux

时间:2023-06-24 21:02来源:未知 作者:admin 点击:
一、方式 1、一般分文两种,一种是打成war包放到tomcat里面;另一种就是打成jar包直接运行,jar包里面自带tomcat;根据自己需要来决定使用哪种方式,这里我使用的是jar包方式 二、启动 1、直接启动:java -jar demo.jar 这种启动方式适合自己测试,因为一般

 一、方式

 
1、一般分文两种,一种是打成war包放到tomcat里面;另一种就是打成jar包直接运行,jar包里面自带tomcat;根据自己需要来决定使用哪种方式,这里我使用的是jar包方式
 
二、启动
 
1、直接启动:java -jar demo.jar
 
这种启动方式适合自己测试,因为一般部署在Linux上,这种方式关闭会话窗口或者ctrl+c都会关闭Java
 
2、后台启动:java -jar demo.jar &
 
这种方式会在后台静默运行,关闭会话窗口会中断Java,和上一种一样,这两个日志都是打印在窗口的,关闭会话就没了
 
3、nohup启动:nohup java -jar demo.jar &
 
这种会把日志打印到nohup.out文件中,但只会打印标准输出不会打印错误输出,关闭通过pid号来kill掉
 
4、nohup启动:nohup java -jar demo.jar>/root/demo.log 2>&1 &
 
这种会把普通输出和错误输出都打印到demo.log中
 
# 启动/停止等脚本
#!/bin/sh
 
ENV=dev
APP_HOME="你的项目路径"
APP_NAME=MyDemo
RUNNING_USER=root
LOG_DATE=`date +%Y%m%d%H%M%S`
 
#创建日志路径
if [[ ! -d "$APP_HOME/logs" ]]; then
  mkdir ${APP_HOME}/logs
fi
 
if [[ ! -f "$APP_HOME/$APP_NAME.jar" ]]; then
  echo "---------------------------------"
  echo "$APP_NAME不存在>>>>>"
  echo "---------------------------------"
  exit 1
fi
 
#实时日志
LOG_PATH=${APP_HOME}/logs/${APP_NAME}.out
 
#GC日志信息
GC_LOG_PATH=${APP_HOME}/logs/gc-${APP_NAME}-${LOG_DATE}.log
 
#JMX监控参数
JMX="-Dcom.sun.management.jmxremote -Dcom.sun.management.jmxremote.port=1091 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false"
 
#JVM启动参数
JVM_OPTS="-Dname=$APP_NAME -Djeesuite.configcenter.profile=$ENV -Duser.timezone=Asia/Shanghai -Xms512M -Xmx512M -XX:PermSize=256M -XX:MaxPermSize=512M -XX:+HeapDumpOnOutOfMemoryError -XX:+PrintGCDateStamps -Xloggc:$GC_LOG_PATH -XX:+PrintGCDetails -XX:NewRatio=1 -XX:SurvivorRatio=30 -XX:+UseParallelGC -XX:+UseParallelOldGC"
 
APP_FILE=${APP_NAME}.jar
pid=0
 
#获取进程号
getPid() {
    pid=`ps -ef |grep ${APP_FILE} |grep -v grep |awk '{print $2}'`
}
 
#启动服务
start() {
  getPid
  if [[ ! -n "$pid" ]]; then
    JAVA_CMD="nohup java -jar $JVM_OPTS ${APP_HOME}/${APP_NAME}.jar >> $LOG_PATH 2>&1 &"
    echo "---------------------------------"
    su  ${RUNNING_USER} -c "$JAVA_CMD"
    echo "启动中>>>>>>>"
    echo "---------------------------------"
    sleep 2s
    #tail -f ${LOG_PATH}
  else
      echo "$APP_NAME is running PID: $pid"
  fi
}
 
#停止服务
stop() {
    getPid
    if [[ ! -n "$pid" ]]; then
     echo "$APP_NAME not running"
    else
      echo "$APP_NAME stop..."
      kill -9 ${pid}
    fi
}
 
#重启服务
restart() {
    stop
    sleep 1s
    start
}
 
#服务状态
status() {
   getPid
   if [[ ! -n "$pid" ]]; then
     echo "$APP_NAME not running"
   else
     echo "$APP_NAME running PID: $pid"
   fi
}
 
#查看最近100行日志
hundred() {
   LOG_PATH=${APP_HOME}/logs/${APP_NAME}.out
   tail -100f ${LOG_PATH}
}
 
case $1 in
start)
start
;;
stop)
stop
;;
restart)
restart
;;
status)
status
;;
log)
hundred
;;
*)
echo "$0: Usage: $0 {start|stop|restart|status|log}"
exit 1
;;
esac
 
5、系统服务启动,自带定义一个系统服务来启动,我使用的是这种
 
1、创建一个系统服务文件
 
vi /etc/systemd/system/demo.service
1.
 
 
2、输入下面信息
 
 
[Unit]
 
# 服务名称
Description=demo Service
 
# 在什么服务启动后启动
After=syslog.target
 
[Service]
 
# jar包启动命令,这里java要写绝对路径
ExecStart=/usr/local/jdk1.8.0_291/bin/java -jar /usr/local/java/demo.jar 
 
[Install]
 
# 设置服务安装,可以设置多个,用逗号隔开
WantedBy=multi-user.target
 
 
3、保存
4、执行命令
 
复制 
systemctl start demo    # 启动
systemctl stop demo    # 关闭
systemctl status demo    # 服务当前状态
systemctl enable demo    # 设置服务开机启动
systemctl disable demo    # 关闭服务开机启动
systemctl restart demo    # 重启服务
-----------------------------------
java -jar 后台运行 linux jar包如何运行linux
https://blog.51cto.com/u_13019/6306686
(责任编辑:admin)本文地址:http://www.codehy.com/info/LinuxServer/2023/0624/23985.html

推荐资讯