Linux服务器上部署jar包常用命令

这篇个人笔记记录了在Linux服务器上部署jar包的常用命令,包括跳过测试打包、检查端口占用、指定端口启动、后台运行及使用nohup保持程序运行,以及如何查看jar包对应的进程号。
个人前期笔记,主要是命令的记载。

  1. mvn 跳过测试打包成jar包

    mvn clean package -Dmaven.test.skip=true 
    
  2. 检查是否有进程已启动,不然启动会报端口占用

    #可能上次启动还没有关闭,用如下命令,然后杀掉对应进程
     ps aux | grep 8080
     kill -9 对应进程号
    
  3. 指定端口,启动jar包

    # lsof -i | grep 8080 
    java -jar xxx.jar --server.port=8080
    
  4. 后台刮起执行jar包

    nohup java -jar shareniu.jar &
    
    • nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行
    • 当用 nohup 命令执行作业时,缺省情况下该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件
  5. 查看jar包程序到进程号

    ps -ef|grep xxx.jar
    
### 部署JAR到远程Linux服务器并运行的步骤 #### 1. 准备远程服务器环境 确保远程服务器已经安装了Java运行环境(JRE或JDK),可以通过以下命令检查Java是否已安装: ```bash java -version ``` 如果未安装Java,可以通过以下命令安装OpenJDK: ```bash sudo apt update sudo apt install default-jdk ``` #### 2. 配置SSH连接 在部署过程中,需要通过SSH连接到远程服务器。可以使用`ssh`命令进行连接,例如: ```bash ssh username@remote_server_ip ``` 如果需要在Jenkins中部署,可以安装并配置**Publish Over SSH**插件,该插件允许Jenkins通过SSH将文件传输到远程服务器并执行命令[^1]。 #### 3. 上传JAR到远程服务器 可以通过`scp`命令将本地的JAR上传到远程服务器,例如: ```bash scp yourfile.jar username@remote_server_ip:/path/to/destination ``` 在Jenkins中,可以通过配置**Publish Over SSH**插件,设置远程服务器的SSH连接信息,并在Jenkins任务中添加文件传输步骤,将构建好的JAR上传到远程服务器[^1]。 #### 4. 编写并执行启动脚本 在远程服务器上,可以编写一个Shell脚本来启动JAR。该脚本通常括停止已有进程、启动新进程等操作。以下是一个示例脚本: ```bash #!/bin/sh RESOURCE_NAME=yourfile.jar tpid=`ps -ef | grep $RESOURCE_NAME | grep -v grep | awk '{print $2}'` if [ ${tpid} ]; then echo 'Stop Process...' kill -15 $tpid fi sleep 5 tpid=`ps -ef | grep $RESOURCE_NAME | grep -v grep | awk '{print $2}'` if [ ${tpid} ]; then echo 'Kill Process!' kill -9 $tpid else echo 'Stop Success!' fi nohup java -jar ./$RESOURCE_NAME > nohup.out 2>&1 & echo $! > tpid echo 'Start Success!' ``` 该脚本首先检查是否已有运行的JAR进程,如果有则停止该进程。随后启动新的JAR进程,并将日志输出到`nohup.out`文件中,确保即使关闭终端,程序仍然运行[^4]。 #### 5. 配置Jenkins任务 在Jenkins中,可以配置一个自由风格的项目,并在构建后操作中选择**Send files or execute commands over SSH**,设置远程服务器的SSH连接信息,并上传JAR到指定目录。随后可以执行上述脚本启动JAR[^1]。 #### 6. 验证部署 可以通过以下命令检查JAR是否成功运行: ```bash ps -ef | grep yourfile.jar ``` 同时,可以查看`nohup.out`文件以获取应用程序的日志输出: ```bash tail -f nohup.out ``` ### 示例代码 以下是一个完整的示例脚本,用于停止已有进程并启动新的JAR: ```bash #!/bin/sh RESOURCE_NAME=yourfile.jar tpid=`ps -ef | grep $RESOURCE_NAME | grep -v grep | awk '{print $2}'` if [ ${tpid} ]; then echo 'Stop Process...' kill -15 $tpid fi sleep 5 tpid=`ps -ef | grep $RESOURCE_NAME | grep -v grep | awk '{print $2}'` if [ ${tpid} ]; then echo 'Kill Process!' kill -9 $tpid else echo 'Stop Success!' fi nohup java -jar ./$RESOURCE_NAME > nohup.out 2>&1 & echo $! > tpid echo 'Start Success!' ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值