Linux环境下快速部署Spring Boot应用:高效命令组合实践

概要:

本文旨在介绍一种高效的Linux命令组合,用于简化Spring Boot项目的部署与管理流程。通过结合使用nohup、java -jar、输出重定向以及进程管理命令,我们能够实现Spring Boot应用的快速后台启动及便捷的进程控制,尤其适合于自动化部署脚本或日常运维操作。

1.start.sh

bash 复制代码
nohup java -jar current.jar >/null &
  • nohup:是"No hang up"的缩写,它的作用是在运行命令之后忽略所有的挂断(HUP)信号。这意味着即使你关闭了终端或者断开了SSH连接,这个命令及其启动的进程仍然会在后台继续运行。

  • java -jar current.jar :这是启动Java应用程序的基本命令。java是Java运行时环境的可执行文件,-jar选项告诉Java直接从指定的JAR文件(这里是current.jar)加载JavaManifest文件并执行主类,从而启动应用程序。

  • >:输出重定向符号,用于将原本输出到屏幕的标准输出(STDOUT)内容重定向到另一个地方。

  • /null :在这个场景中,它试图将标准输出重定向到一个名为null的文件,但实际上在大多数Unix/Linux系统中,/dev/null是一个特殊的文件,用于丢弃一切写入其中的数据,因此这里的目的是丢弃Java程序的标准输出信息,让程序安静地在后台运行,不产生任何输出日志。

  • & :这个符号放在命令的末尾,意味着将命令放到后台执行。当你在命令行输入以&结尾的命令后,shell会立即返回提示符,允许你在同一终端进行其他操作,而命令会在后台继续运行。

2.stop.sh

bash 复制代码
ps -ef |grep "current.jar" |grep -v grep |awk '{print $2}'|xargs kill -9

这行命令是Linux/Unix shell脚本中用于查找并杀死名为"current.jar"的Java进程的常用命令组合

  1. ps -ef :这个命令用于列出系统中所有正在运行的进程的信息。-e表示列出所有进程,-f则表示以全格式输出,即展示包括PID(进程ID)、父进程ID、用户、启动时间等在内的详细信息。

  2. grep "current.jar" :通过管道|,将上一步的结果作为输入,使用grep命令过滤出包含字符串"current.jar"的行。通常,这用来找出与运行中的Java应用程序相关的进程,尤其是当该应用的jar包名为current.jar时。

  3. grep -v grep :再次通过管道传递结果,并使用grep -v来排除那些包含grep自身进程的信息。这样做是为了避免在结果中误杀执行此命令的grep进程。

  4. awk '{print $2}' :进一步处理管道传来的数据,使用awk命令提取每行的第二个字段(即PID)。在ps -ef的输出中,PID通常是每行的第二个列(以空格分隔)。

  5. | xargs kill -9 :最后,通过管道,将前面命令得到的所有PID作为输入传递给xargs。xargs的作用是将这些PID作为参数传递给后面的命令。在这里,它执行的是kill -9,其中-9是SIGKILL信号,这是一种强制终止进程的信号,这意味着它会立即结束指定PID的进程,而不给进程清理资源或优雅退出的机会。

相关推荐
Android系统攻城狮2 分钟前
Linux Gstreamer深度解析之gst_audio_ring_buffer_activate调用流程与实战(七十九)
linux·运维·服务器·gstreamer音视频·gstreamer音视频进阶
paopaokaka_luck6 分钟前
校园新闻推荐系统(DeepSeek新闻助手、个性化推荐算法、 Redis热词排行榜、ECharts运营分析、互动与实时通知、新闻运营闭环)
java·spring boot·mysql·spring·tomcat·echarts·intellij idea
yuniko-n11 分钟前
【JUC】线程池
java·开发语言
小天源17 分钟前
智叟云集政策监测技术方案——原文解析、证据提取与可核验摘要
java·服务器·数据库
yuzhiboyouye23 分钟前
我现在得后端状况以及需要做的
java
小羊没烦恼!25 分钟前
在.net中读写config文件的各种方法
java·大数据·运维·服务器·前端·数据库·oracle
Escalating_xu33 分钟前
【Linux 网络编程】网络命令加餐:用 ping、netstat、watch 和 pidof 排查服务问题
linux·运维·网络
mounter62541 分钟前
现代 Linux 内核在异构内存与硬件演进下的架构变革:压缩 RAM、CXL 与分布式内存
linux·linux kernel·kernel
余额瞒着我当琳42 分钟前
哈希表底层原理解析,直接定址法,哈希冲突,负载因子,哈希函数,开放定址法
java·c++·哈希算法·散列表
paopaokaka_luck1 小时前
民宿管理系统 (AI民宿总结、协同过滤推荐算法、WebSocket 在线咨询、ECharts 经营分析、房态与结算联动、 民宿预订业务闭环)
java·人工智能·spring boot·websocket·数据分析·echarts·推荐算法