linux中SpringBoot项目的启动方式
linux中启动SpringBoot分为“前台启动”和“后台启动”。前台启动是指通过命令直接运行SpringBoot项目jar包,并且运行打印日志直接显示在我们所看到的前台,页面一旦关闭就会停止或改变;而后台启动则是通过命令或脚本启动SpringBoot项目,是项目能够独立的在后台运行,不会打扰我们其他操作。一、普通命令这种启动方式属于“前台启动”,下面两种方法都属于“后台启动”java -jar
·
linux中启动SpringBoot分为“前台启动”和“后台启动”。前台启动是指通过命令直接运行SpringBoot项目jar包,并且运行打印日志直接显示在我们所看到的前台,页面一旦关闭就会停止或改变;而后台启动则是通过命令或脚本启动SpringBoot项目,是项目能够独立的在后台运行,不会打扰我们其他操作。
一、普通命令
这种启动方式属于“前台启动”,下面两种方法都属于“后台启动”
java -jar app.jar(格式:java -jar jar包名.jar)
二、后台命令
该命令用于后台启动项目,nohup(no hang up)“不挂断”
nohup java -jar app.jar &
进阶版(可以指定日志输出)
nohup java -jar app.jar > app.log 2>&1 &
- app.log,用于存储日志文件
- 2>&1,将标准错误(2)重定向到标准输出(&1),标准输出(&1)再被重定向输入到myout.file文件中
- &,后台启动
- 命令中的数字
- 0(STDIN_FILENO)标准输入(键盘)
- 1(STDOUT_FILENO)标准输出(用户终端控制台)
- 2(STDERR_FILENO)标准错误(报错信息)
关闭的话需要先查询服务的进程号,然后关闭,如下
ps -ef | grep app.jar //查询出的第二项应该就是进程号
kill -15 进程号 或 kill -9 进程号(强制停止)
三、脚本
在jar包同目录下执行vi app.sh
,按i
进行编辑一个app.sh脚本文件
然后添加代码如下(使用之前需要修改APP的值,改为自己需要启动的包名)
#!/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
然后执行点击Esc
,然后输入:wq
进行保存
执行chmod +x app.sh
使脚本具有执行权限
使用命令:
./app.sh start
,启动项目./app.sh stop
,停止项目./app.sh check
,检查项目运行状态./app.sh kill
,强制关闭项目./app.sh ipid
,输出进程号
更多推荐
已为社区贡献1条内容
所有评论(0)