springBoot 的jar包部署到linux环境启动是最常见的场景了,也是我们技术人员必须掌握的技能,今天我们分享一下:
1、简单启动命令
nohup java -jar demo.jar &
这样执行后,nohup会把执行结果中的日志输出到当前文件夹下面的nohup.out文件中
如果java项目时我们自己对日志文件进行了配置,在生产环境上不需要输出默认的nohup.out日志,此时我们可以使用如下命令启动jar包
nohup java -jar demo.jar >/dev/null 2>&1 &
如果指定输出日志到某个文件
nohup java -jar demo.jar > catalina.out 2>&1 &
2、封装成sh脚本一键启动
#! /usr/bin/env bash
echo "*****************demo-service**************"
cd `dirname $0`
echo `pwd`
serviceId="demo.jar"
jvmStr="-Xms256m -Xmx256m"
pid=`ps -ef | grep -w ${serviceId} | grep -v bash | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
echo "服务已启动 pid $pid"
exit 1
fi
nohup java -jar $jvmStr ./$serviceId > /dev/null 2>&1 &
sleep 10
#echo "starting..."
3、封装成sh文件一键关闭
#!/bin/bash
echo "**************关闭此服务************"
serviceId="demo.jar"
pid=`ps -ef | grep $serviceId | grep -v grep | awk '{print $2}'`
if [ $pid ];then
echo -e "$serviceId Stating pid : $pid"
kill -9 $pid
echo -e "$serviceId stop"
else
echo "$serviceId is closed"
fi
当然也可以直接通过ps相关 命令 找到服务pid,通过kill命令处理,通过命令会麻烦些,技术性比较强,操作错误的风险比较大,因此还是封装成sh脚本比较安全些。
jobs -l #是否运行
kill -9 进程id #停用服务
4、扩展功能操作
如果你还有其他的功能需求,会用到其他命令 可以参考如下文章