-
2022-01-26 10:48:56
shell脚本实现jar项目的启动、停止、重启,脚本如下:
#!/bin/sh export jar项目=XXX.jar export jar端口=9022 case "$1" in start) ## 启动XXX项目 echo "--------开始启动项目---------------" nohup /home/dhr/java/java8/bin/java -jar -Xms500m -Xmx700m ./$jar项目 --server.port=$jar端口 --spring.profiles.active=dev >/dev/null 2>&1 & PID=$(lsof -i:$jar端口 | grep "LISTEN" | awk '{print $2}') until [ -n "$PID" ]; do PID=$(lsof -i:$jar端口 | grep "LISTEN" | awk '{print $2}') done echo "项目 pid is $PID" echo "---------启动成功-----------" ;; stop) P_ID=$(netstat -nlp | grep :$jar端口 | awk '{print $7}' | awk -F"/" '{print $1}') if [ "$P_ID" == "" ]; then echo "===项目 process not exists or stop success" else kill -9 $P_ID echo "项目 killed success" fi echo "===stop success===" ;; restart) $0 stop sleep 2 $0 start echo "===restart success===" ;; esac exit 0
执行启动、停止、重启的命令如下:
#启动命令 ./xxx.sh start #停止命令 ./xxx.sh stop #重启命令 ./xxx.sh restart
更多相关内容 -
Linux启动jar包的shell脚本
2020-09-15 04:13:28主要介绍了Linux启动jar包的shell脚本,非常不错,具有参考借鉴价值,需要的朋友可以参考下 -
linux批量启动程序jar包
2020-12-31 08:59:43在linux环境下,批量启动程序jar包 -
Linux 环境下部署 jar 包
2021-01-07 09:50:462. 将jar包复制到Linux系统中的某个文件夹下,此时采用xshell与xftp工具完成,如下: 3. 编写startup.sh启动程序。新建startup.sh文件,使用vim编辑如下: nohup java -jar -Dserver.port=38080 demo-0.0.1-... -
Linux一键启动多个jar
2019-07-19 09:13:57这是Linux环境下一键启动/停止多个Java程序jar包的文件,执行命令为./java.sh start -
linux下启动jar包shell脚本
2021-12-15 10:48:19linux下jar包启动脚本,实测可用,只需修改你的环境变量和应用名称 -
Linux启动/停止多个jar中的某个服务的jar
2019-07-19 09:18:41这是为了linux环境下有多个jar程序运行,需要执行其中某个服务开始/停止的命令脚本 -
jar启动脚本 自动启动jar包
2020-11-04 17:01:58需要配置jdk环境 运行 ./boot.sh --jar包- start 停止 ./boot.sh --jar包- stop -
Linux下正确启动jar包
2021-03-03 16:32:34Linux下启动jar包,这是一个非常基础的技能。但是涉及的环节也比较多,也容易出错。一路踩坑过来,jar包无法正确启动,原因主要是集中在三个方面:1.Java环境问题如何解决已经在上一篇文章里写的很详细了。2.代码配置...Linux下启动jar包,这是一个非常基础的技能。但是涉及的环节也比较多,也容易出错。一路踩坑过来,jar包无法正确启动,原因主要是集中在三个方面:
1.Java环境问题
如何解决已经在上一篇文章里写的很详细了。
2.代码配置问题
3.Linux权限问题
主要是谈谈第二点和第三点怎么解决
对于代码配置问题,首先要认识到开发环境和正式环境是有区别的,开发环境一般是windows或者MAC,服务器一般都是Linux。开发环境还有开发工具,一个jar包能在开发工具里启动正常,不一定脱离了开发工具就能启动。所以一个程序写好了,不要想当然的觉得扔到服务器上也能正常运行。
在springboot中首先就要配置好Spring Boot Maven plugin,这样你才能打成一个正常的jar包。不会抛出no main manifest attribute, in xxxx-0.0.1-SNAPSHOT.jar这样的异常。
在pom.xml中配置,代码如下:
org.springframework.boot
spring-boot-maven-plugin
还有,SpringBoot工程一般是作为一个可独立运行的项目,不是作为某个项目的依赖,如果要将一个Springboot项目作为另外一个项目的依赖,需要另外配置,在此不叙述。
设置好maven插件之后,一般就可以正常启动项目。但是如果是使用nohup命令,还有可能遇到这种情况:
看起来好像项目已经启动了,还返回了PID,实际上报了一个ignoring input and appending output to 'nohup.out'的错误,这种情况下去查看这个项目的进程会发现实际上是没有的,也就是说这个项目并没有正常启动。
出现这种情况的原因是对nohup.out日志没有写入权限,因为你执行nphup命令就会产生日志,日志默认就输出到nohup.out。而实际上给nohup.out赋权限也没解决的了。经过查找资料,最好的解决办法就是让输出的日志输出到一个有权限的地方,即不要简简单单的执行nohup xxx,而是 nohup xxx>/dev/null 2>&1 去执行,xxx就是你需要执行的脚本,样例如下:
nohup java -jar chapter063-0.0.1-SNAPSHOT.jar>/dev/null 2>&1 --server.port=8080 &
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
以上就是我需要执行的脚本
以上三个问题就是最近在服务器启动jar包遇到的问题整理以及解决办法。
执行启动命令:
再查看进程:
完美。
-
Linux编辑启动、停止与重启springboot jar包脚本实例
2021-01-20 16:13:41// 直接在控制台进行启动,缺点就是控制台关闭项目也就关闭了。 java -jar bootdo.jar // 这种方式可以运行在后台,但是如果推出了shell的话,那也会挂 java -jar /bootdo-2.0.0.jar > bootdolog.file 2>&1 & // 加上... -
启动jar包 指定配置文件和运行环境
2021-05-10 03:05:48(指定所用yaml文件、运行环境、输出日志)nohup jdk1.8.0_131/bin/java -jar -Dspring.config.location=tmp/springboottmp/xxx.yaml tmp/service.jar --spring.profiles.active=test > logs/xxxlog.log 2>&...(指定所用yaml文件、运行环境、输出日志)
nohup jdk1.8.0_131/bin/java -jar -Dspring.config.location=tmp/springboottmp/xxx.yaml tmp/service.jar --spring.profiles.active=test > logs/xxxlog.log 2>&1 &
命令说明:
nohup:意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
jdk1.8.0_131/bin/java:指定使用的jdk
2>&1:
在shell中,0表示标准输入,1表示标准输出,2表示标准错误。
而>表示重定向,而2>&1中的&则表示等同于的意思。
因此下面的操作就很好理解了:
> file表示将标准输出输出到file中,即相当于1>file,
2> error表示将标准错误输出到error中,
2>&1表示将标准错误也输出到标准输出中,
>/dev/null 2>&1表示将标准错误重定向到标准输出中,并将标准输出输出到无底洞中(即不记录)
之所以要重定向,是因为有的时候我们需要记录全部日志,而有的时候我们只需要记录错误信息,或者有的时候我们程序内部已经记录了日志因此不需要额外再记录日志。
注:
//显示所有的进程
ps -ef
查看那个端口被占用
netstat -tln
netstat -tln | grep 80
参照:
Linux 运行jar包命令如下:
方式一:
java -jar XXX.jar
特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出
那如何让窗口不锁定?
方式二
java -jar XXX.jar &
&代表在后台运行。
特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序中止运行。
继续改进,如何让窗口关闭时,程序仍然运行?
方式三
nohup java -jar XXX.jar &
nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。
方式四
nohup java -jar XXX.jar >temp.txt &
解释下 >temp.txt
command >out.file
command >out.file是将command的输出重定向到out.file文件,即输出内容不打印到屏幕上,而是输出到out.file文件中
-
linux启动springboot项目jar包
2022-01-13 16:19:02我们经常在linux上进行新的项目部署测试时,会编写一定的脚本文件去方便的操作springboot的jar。本文包含jar包的启动(start.sh)、停止(stop.bat)、重启(restart.bat)常用的三种场景。话不多说直接开始,喜欢点个赞...我们经常在linux上进行新的项目部署测试时,会编写一定的脚本文件去方便的操作springboot的jar。本文包含jar包的启动(start.sh)、停止(stop.bat)、重启(restart.bat)常用的三种场景。话不多说直接开始,喜欢点个赞收藏一下。
注:本文章涉及内容为本人项目所用,不存在恶意代码命令。jar名称和日志名称根据项目实际情况进行修改,日志文件会生成到jar包的同目录下。prot端口根据实际情况修改。
start.bat
#!/bin/sh app_name=test.jar log_file=test.log echo ${env}环境启动文件平台jar包:${app_name} nohup java -jar ${app_name} --server.port=9012 > ${log_file} 2>&1 & tail -f ./${log_file}
stop.bat
#!/bin/sh # 杀死文件平台进程 app_file=test.jar log_file=test.log echo 杀死文件平台进程jar包:${app_file} cp ${app_file} ./backup/$(date "+%Y-%m-%d_%H:%M:%S")${app_file} mv ${log_file} ./backup/$(date "+%Y-%m-%d_%H:%M:%S")${log_file} ps -ef | grep ${app_file} | grep -v grep | awk '{print $2}' | xargs kill -9
restart.bat
#!/bin/bash # 环境变量 app_file=test.jar log_file=test.log echo 将要启动的jar包:${app_file} pid=`ps -ef |grep "${app_file}" | grep -v grep | awk '{print $2}'` echo 将要杀死原来的进程$pid kill -9 $pid echo "$pid进程终止成功" #kill -9 `ps -ef |grep "${app_file}" | grep -v grep | awk '{print $2}'` sleep 2 echo "判断jar包${app_file}文件是否存在,如果存在启动${app_file}包" if test -e $app_file then echo "文件存在,开始以${env}环境启动此程序..." # 启动jar包,指向日志文件,2>&1 & 表示打开或指向同一个日志文件 nohup java -jar "${app_file}" --server.port=9012 > ${log_file} 2>&1 & tail -f ${log_file} #echo "$app_file 启动成功..." else echo "$app_file 文件不存在,请检查。" fi
编写上述三个脚本文件后执行 ./xx.bat命令执行。
执行可能会出现不成功情况,不要慌看我的下篇文章《如何修改linux中的文本格式》。 -
Linux环境下以命令和脚本方式启动jar包
2019-03-26 17:57:39Linux环境下以命令和脚本方式启动jar包 一、以命令方式启动jar包 1、方式一 java -jar XXX.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出。 2、方式二 // 那如何让窗口... -
Linux 设置 jar 包开机自启动
2022-01-26 17:56:41初步学习Springboot编写服务,尝试部署到Linux环境下,并进行开机自启动。 Linux系统:Centos7.6 Java包:xxx.jar 流程 将 xxx.jar 包(及外部配置文件)放入Linuxu系统中,假设放到/home/test/路径下; 修改文件... -
linux 启动jar包 指定yml配置文件和输入日志文件
2021-05-10 10:47:57命令为:nohup java -jar project.jar --spring.config.location=/home/project-conf/application.yml > /home/project-conf/nohup.out 2>&1 &...2.java -jar :启动jar包命令。3.pro... -
Linux中springboot项目启动脚本
2020-03-26 13:56:33springboot项目启动脚本,jar包项目万能启动脚本,只需要替换文件中注释的需要替换的地方 其他不需要改动,将脚本文件放到项目jar包相同目录下,再给脚本文件赋予权限:chmod +x 脚本文件名 之后直接:./脚本文件名... -
Linux系统下jar包的多种启动方式
2020-09-23 20:19:00一、启动jar包 Linux 运行jar包命令如下: 方式一: java -jar shareniu.jar 特点:当前ssh窗口被锁定,可按CTRL + C打断程序运行,或直接关闭窗口,程序退出 那如何让窗口不锁定? 方式二 java -jar shareniu.jar &... -
Linux环境项目以jar包形式启动,指定环境配置文件
2020-12-04 17:29:43nohup java -jar xxx.jar --spring.profiles.active=DEV > xxx-logs.txt & -
如何在Linux服务器上启动jar包一直运行并修改后台冲突的运行端口号?
2020-07-23 22:34:262.如果有进程(占用了8888端口)在运行,还是想用8888端口运行其他jar的话,那么先杀死占用进程。 (此处以端口8888号举例,其他端口号同样适用。) kill -9 17654(进程号) 3.再次查看进程,检查是否已经杀死进程了。 ... -
Linux设置jar包开机自启动
2021-10-29 14:48:41首先编写一个启动jar包的脚本,位置随意,这里以/home/java为例,文件名叫startup.sh。 export JAVA_HOME=/usr/local/java/jdk1.8.0_152 export PATH=$JAVA_HOME/bin/:$PATH nohup java -jar /usr/local/sz/ar-plus... -
Linux启动与停止spring boot工程的脚本示例
2021-01-10 11:42:38一般我们在开发的时候经常使用的是前面两种运行方式,在部署实施的时候使用的第三种方式,下面我们就重点说明下载linux环境中运行和停止springboot项目的指令和脚本: 一、指令 nohup 不挂断运行指令 一般在linux... -
Linux 环境下启动,停止 jar
2020-03-29 10:47:271. 普通运行 java -jar <name>.jar 运行程序,ctrl+c 停止运行 2. 后台运行 ...java -jar <....jar &...nohup java -jar XXX.jar & 当账户退出或终端关闭时,程序仍然运行。 注... -
linux环境springcloud服务jar包启动停止脚本
2022-03-05 17:40:50linux环境springcloud服务jar包启动停止脚本1. 启动脚本2. 停止脚本3. 注意事项 -
Linux环境启动、停止与重启springboot(jar包)项目实例
2021-03-31 21:58:19目录一、环境配置(以下是lz的环境配置位置)二、linux环境中springboot加载jar包的三种方式三、项目启动与停止操作第一种方式(java -jar命令方式)四、项目启动与停止操作第二种方式(shell脚本方式) 一、环境配置... -
Linux环境下启动jar包的shell
2018-04-08 17:47:27#! /bin/sh name="beautifulDistrict" Xmx=1024m Xms=1024m Xmn=512m PermSize=256m MaxPermSize=512m pid=${name}"...^\${name}.*jar$" | sort -r | head -n 1` start()... -
Linux启动jar包,输出日志
2021-02-02 17:39:36在Linux环境下运行jar文件 方式一: 命令:java -jar xxxx.jar 特点:当前ssh窗口被锁定,可按ctrl+c打断程序运行,或直接关闭窗口,程序退出。 方式二: 命令:java -jar xxxx.jar & 特点:&表示... -
Linux下部署环境及jar包详细版
2022-03-28 21:04:43linux中安装docker运行环境并配置nginx,redis,mysql,openJdk,部署jar包。此文档作为记录不包含docker宿主机文件挂载,所有文件都在容器中运行 -
linux系统如何启动微服务jar包
2020-09-29 21:15:15所以这篇文章介绍下linux系统如何启动微服务的jar包 1.java -jar 启动微服务 直接使用命令java -jar aa.jar 启动微服务,可以看到日志如下,但是一旦关闭xskell终端或者按下ctrl +C,微服务直接关闭。 2.后台启动 ...