linux下启动和关闭jar项目

本文详细介绍如何将SpringBoot项目打包成jar,并通过编写sh脚本实现项目的远程部署及启动、停止操作。涵盖Linux服务器环境配置、项目传输、日志记录等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、自己将项目(比如用springboot框架写的项目)打包成jar包,然后我们需要将它用软件传输到linux版本的服务器上(服务器提前安装好JDK>=1.8)。

2、自己编写sh命令,用于启动和关闭项目,并打印日志信息到服务器本地。

1)、start_项目名.sh文件

#For shutting down the 你的项目名.jar
pid=$(ps -ef | grep 你的项目名.jar| grep -v "grep" | awk '{print $2}')
kill -9 $pid
echo "The 你的项目名.jar now has been shut down!"

#For starting the 你的项目名.jar
nohup java -jar 你的项目名.jar >你的项目日志名.output 2>&1 &
echo "The 你的项目名.jar now is running!"
tailf  你的项目日志名.output

2)、shutdown_项目名.sh文件

#For shutting down the 你的项目名.jar
pid=$(ps -ef | grep 你的项目名.jar| grep -v "grep" | awk '{print $2}')
kill -9 $pid
echo "The 你的项目名.jar now has been shut down!"

3、将你的项目jar包、start_项目名.sh、shutdown_项目名.sh放在服务器的某一个文件夹下(他三个处于同一个目录),此时,可以用控制台启动和关闭项目了。

<think>好的,我现在需要帮助用户解决在Linux系统中启动关闭jar的完整命令的问题。首先,我得回想一下用户提供的引用内容,看看有哪些信息可以利用。用户给出了四个引用,都是关于Linux启动停止jar命令,这可能括不同的方法以及参数的使用。 首先,启动jar的基本命令通常是使用java -jar,但根据引用中的信息,用户可能需要考虑后台运行、日志输出、指定JVM参数等。例如,引用1中的命令使用了nohup,并且重定向了输出到文件,还指定了内存参数。引用2提到了指定特定JDK版本的方法,这可能对用户有用,尤其是当系统中有多个JDK版本时。引用34提到了使用kill命令停止进程,以及如何编写sh脚本来管理启动停止。 接下来,我需要整理这些信息,分步骤说明启动关闭命令启动部分应该括基本命令、后台运行、日志处理、指定JVM参数JDK版本。关闭部分则需要说明如何查找进程ID并使用kill命令,或者通过脚本停止。 另外,用户可能关心如何让jar在后台持续运行,即使终端关闭也不会中断,所以nohup&的用法很重要。同时,日志的管理也是关键,用户可能需要知道如何将标准输出错误输出重定向到文件,方便后续排查问题。 关于关闭jar,除了直接使用kill命令,是否有更优雅的方式?比如通过应用程序自身的关闭机制,但大多数情况下,特别是对于Spring Boot应用,可能需要通过kill来终止进程。因此,需要详细说明如何找到正确的进程ID,避免误杀其他进程。 此外,用户可能希望了解如何将启动停止命令封装成shell脚本,方便重复使用。引用34提到了sh文件的运行,这可以简化操作流程,特别是对于需要频繁重启服务的用户来说,脚本化是一个好方法。 还要注意不同情况下的命令差异,比如是否需要指定服务器端口(--server.port),或者调整JVM的内存设置(-Xmx-Xms)。这些参数在引用12中都有涉及,需要整合到回答中,说明其作用用法。 最后,确保回答结构清晰,分点列出启动关闭的步骤,每个步骤给出示例命令,并解释各个参数的意义。同时,需要提醒用户注意事项,比如确保使用正确的JDK版本,处理权限问题,以及日志文件的管理等。 现在需要检查是否有遗漏的部分,比如如何确认进程是否成功启动,如何监控日志,或者如何处理多实例的情况。例如,引用3提到使用ps -aux | grep来检查进程,这应该在关闭部分详细说明,帮助用户准确找到进程ID。 总结来说,回答应该涵盖启动命令的不同变体(基础、后台运行、日志重定向、指定参数)、关闭命令的方法(查找进程并kill),以及脚本化管理的建议。同时,注意事项部分需要强调关键点,避免常见错误,比如权限不足或JDK版本不匹配。</think>### Linux系统启动关闭jar的完整命令 #### 一、启动Jar命令 1. **基础启动命令** ```bash java -jar your-app.jar ``` *说明*:直接在前台运行,关闭终端或按`Ctrl+C`会终止程序[^4]。 2. **后台运行且输出日志** ```bash nohup java -jar your-app.jar > app.log 2>&1 & ``` - `nohup`:防止进程因终端关闭而终止 - `> app.log`:将标准输出重定向到日志文件 - `2>&1`:将错误输出合并到标准输出 - `&`:后台运行[^1][^4]。 3. **指定JVM内存参数** ```bash nohup java -jar -Xmx2048M -Xms512M your-app.jar > app.log 2>&1 & ``` - `-Xmx`:最大堆内存 - `-Xms`:初始堆内存[^1]。 4. **指定JDK版本** ```bash /path/to/jdk/bin/java -jar your-app.jar > app.log 2>&1 & ``` *示例*: ```bash /home/software/jdk1.8.0_181/bin/java -jar your-app.jar 1>system.log 2>&1 & ``` 适用于系统存在多个JDK的情况[^2]。 5. **指定服务端口** ```bash nohup java -jar your-app.jar --server.port=9090 > app.log 2>&1 & ``` 常用于Spring Boot项目[^1]。 --- #### 二、关闭Jar命令 1. **查找进程ID** ```bash ps -aux | grep your-app.jar ``` 输出示例: ``` user 1234 0.0 0.5 123456 6789 ? Sl 10:00 java -jar your-app.jar ``` 其中`1234`为进程ID(PID)[^3][^4]。 2. **终止进程** ```bash kill -9 PID ``` *示例*: ```bash kill -9 1234 ``` - `-9`:强制终止进程(慎用,可能丢失数据) - 建议先尝试`kill PID`,若无效再使用`-9`[^3][^4]。 --- #### 三、脚本化管理(推荐) 1. **启动脚本`start.sh`** ```bash #!/bin/bash nohup java -jar -Xmx2048M -Xms512M your-app.jar > app.log 2>&1 & ``` 运行命令: ```bash sh start.sh ``` 2. **停止脚本`stop.sh`** ```bash #!/bin/bash PID=$(ps -aux | grep 'your-app.jar' | grep -v grep | awk '{print $2}') kill -9 $PID ``` 运行命令: ```bash sh stop.sh ``` --- #### 注意事项 1. **日志管理** - 定期清理日志文件(如使用`logrotate`工具) - 日志路径需有写入权限[^4]。 2. **权限问题** 若权限不足,添加执行权限: ```bash chmod +x start.sh stop.sh ``` 3. **环境验证** 运行前检查Java版本: ```bash java -version ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值