项目在linux上的简单部署

本文介绍了项目通过Maven打包后的命令行启动和停止方法,包括直接使用命令行和脚本封装。详细讲解了如何获取和使用进程ID以及创建启动和关闭脚本(如start.sh和shutdown.sh),并通过Linux的xargs命令实现自动化操作。
摘要由CSDN通过智能技术生成

本文章只介绍项目的简单部署,暂时没有Docker部署。

项目部署有两种方式,一种是直接命令部署,第二种是用脚本,脚本本身也是将命令进行封装来执行。

命令

项目通过maven打包,启动命令:

# 启动命令
nohup java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev >log.out 2>&1&

关闭命令两种:

第一种是直接查询出项目的进程ID,再用kill;

第二种是在项目启动类中将进程ID写入固定文件中,在用命令进行关掉进程;

第一种如下:

# 查询项目进行ID 在杀掉进程
ps -ef | grep demo-0.0.1-SNAPSHOT.jar
kill -9 'pid' 

第二种:

启动类:

@Slf4j
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication application = new SpringApplication(DemoApplication .class);
        // 进程ID写到固定文本里    
        application.addListeners(new ApplicationPidFileWriter("./shutdown/DemoApplication .pid"));
        application.run();
    }

}

在同项目部署的路径下运行下面的命令:

# cat: 命令用于连接文件并打印到标准输出设备上。
# xargs: 捕获一个命令的输出,然后传递给另外一个命令
cat shutdown/DemoApplication.pid |xargs kill

参考链接:

xargs的使用: Linux xargs 命令 | 菜鸟教程

脚本

准备启动脚本 start.sh:

nohup java -jar demo-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev >log.out 2>&1&

准备关闭脚本 shutdown.sh:

#  Shell脚本if语法-- if/then/elif/else/fi
APP_NAME=demo-0.0.1-SNAPSHOT
ex=`ps -ef | grep $APP_NAME | grep -v 'grep' | awk '{print $2}' | wc -l`
if [ $ex -gt 0 ]
then
    ps -ef | grep $APP_NAME | grep -v 'grep' |awk '{print $2}'|xargs kill -9
    sleep 3
    echo $APP_NAME "has stopped!"
else
    echo $APP_NAME "is not running!"
fi

将脚本和打包的项目放在同一个位置,执行命令如下:

# 启动项目
./start.sh
#关闭项目
./shutdown.sh

注:如果第一次执行需要为脚本赋权,执行下面命令

chmod +x *.sh 

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值