linux 服务器关闭jar包服务

在Linux服务器上关闭JAR包服务,可以通过以下几种方法实现:

一、使用pskill命令

  1. 查找JAR包进程ID

    • 使用ps命令结合grep命令来查找正在运行的JAR包进程。例如:
    
    

    bash复制代码

    ps aux | grep your-jar-file.jar

    或者

    
    

    bash复制代码

    ps -ef | grep java

    这将列出所有包含指定JAR文件名或Java关键字的进程,记下相应的进程ID(PID)。

  2. 终止进程

    • 使用kill命令来终止找到的进程。例如:
    
    

    bash复制代码

    kill <PID>

    这里的<PID>应替换为实际的进程ID。默认情况下,kill命令会发送一个TERM信号,请求进程正常退出。如果进程没有响应,可以使用-9选项强制关闭:

    
    

    bash复制代码

    kill -9 <PID>

    但请注意,强制关闭可能会导致数据丢失或其他副作用。

二、使用jpskill命令

  1. 列出Java进程

    • 使用jps命令(Java Virtual Machine Process Status Tool)来列出当前用户启动的所有Java进程。例如:
    
    

    bash复制代码

    jps -l

    这将列出所有Java进程及其主类的全名,找到与你的JAR文件对应的进程名。

  2. 终止进程

    • 使用kill命令终止找到的Java进程。例如:
    
    

    bash复制代码

    kill -9 <PID>

    同样,<PID>应替换为实际的进程ID。

三、使用systemctlservice命令(适用于系统服务)

如果JAR文件作为系统服务运行,可以使用systemctlservice命令来管理它。

  1. 停止服务

    • 假设服务名为my-jar-service,可以使用以下命令停止服务:
    
    

    bash复制代码

    sudo systemctl stop my-jar-service

    或者

    
    

    bash复制代码

    sudo service my-jar-service stop
  2. 验证服务状态

    • 为了确保服务已成功停止,可以检查其状态:
    
    

    bash复制代码

    sudo systemctl status my-jar-service

    或者

    
    

    bash复制代码

    sudo service my-jar-service status

四、注意事项

  1. 权限问题

    • 在执行上述命令时,确保你具有足够的权限来关闭进程。有些情况下,你可能需要以管理员身份运行命令。
  2. 数据保存

    • 在强制关闭进程之前,请确保已经保存了重要数据,因为强制关闭可能会导致数据丢失。
  3. 验证进程是否已关闭

    • 可以通过再次运行psjps命令来检查是否还有相关的Java进程在运行,或者使用netstat命令检查是否还有端口在监听。

通过以上方法,你可以有效地在Linux服务器上关闭正在运行的JAR包服务。

### 如何将后端项目打JAR 文件并部署到 Linux 服务器 #### 后端项目的打过程 为了将后端项目打为可执行的 JAR 文件,通常可以使用 Maven 或 Gradle 构建工具完成这一操作。以下是基于 Maven 的具体方法: 通过运行 `mvn clean package` 命令,Maven 将清理旧的目标文件并将项目编译、测试并最终打为目标目录下的 `.jar` 文件[^3]。 目标文件一般位于项目的 `target` 目录下,该目录含了构建后的工件,其中以 `.jar` 结尾的文件就是所需的可执行 JAR [^2]。 #### 部署到 Linux 服务器的过程 一旦获得了 JAR 文件,就可以将其上传至远程 Linux 服务器进行部署。常见的步骤如下所示: 1. **传输 JAR 文件** 使用 SCP(Secure Copy Protocol)或者 FTP 工具将本地生成的 JAR 文件传送到服务器上的指定路径。例如: ```bash scp /local/path/user-service.jar username@remote-server:/path/on/server/ ``` 2. **登录服务器** 登录到目标 Linux 服务器上,可以通过 SSH 客户端实现连接。 ```bash ssh username@remote-server ``` 3. **切换工作目录** 进入之前设定好的存储 JAR 文件的位置。 ```bash cd /path/on/server/ ``` 4. **启动应用** 利用 Java 提供的 `-jar` 参数来运行已上传的应用程序。 ```bash java -jar user-service.jar ``` 如果希望后台运行,则可以附加 `&` 符号或将进程守护化处理[^1]。 #### 解决常见问题 在实际部署过程中可能会碰到某些障碍,比如服务无法正常响应外部请求等问题。这可能是由于防火墙设置不当或未开放必要的网络端口所引起。解决办法括但不限于以下几个方面: - 开启防火墙服务:如果发现服务器默认关闭了防火墙功能,需手动激活它。 ```bash systemctl start firewalld ``` - 添加允许访问的特定端口:假设应用程序监听的是自定义 TCP 端口(如 8080),则需要配置防火墙规则使其对外可见。 ```bash firewall-cmd --zone=public --add-port=8080/tcp --permanent ``` - 应用更改并验证状态:最后记得重新加载防火墙策略,并确认新增加的端口已被正确启用。 ```bash firewall-cmd --reload netstat -ntulp | grep 8080 ``` 上述命令分别用于刷新防火墙配置以及检查是否有对应的服务绑定到了指定端口上[^4]。 ```python import os def deploy_jar(): """模拟简单的JAR部署流程""" local_path = "/local/path/" remote_server = "username@remote-server" remote_dir = "/path/on/server/" # Step 1: Package the project using Maven os.system(f"cd {os.getcwd()} && mvn clean package") # Step 2: Transfer file via SCP jar_file_name = next((f for f in os.listdir('target') if f.endswith('.jar')), None) if not jar_file_name: raise FileNotFoundError("No JAR files found after packaging.") full_local_path = os.path.join(os.getcwd(), 'target', jar_file_name) transfer_command = f'scp "{full_local_path}" {remote_server}:{remote_dir}' os.system(transfer_command) # Step 3: Execute remotely (requires passwordless SSH or key-based auth setup beforehand) run_remote_command = f'ssh {remote_server} "cd {remote_dir}; nohup java -jar {jar_file_name} &"' os.system(run_remote_command) deploy_jar() ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端组件开发

你的钟意将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值