Linux 如何关闭 jar 服务
在开发和部署环境中,Java 程序运行的方式很多,其中一种是使用 jar 包来运行,这种方式非常方便和灵活,同时也存在一些弊端,例如当需要关闭服务时就需要学会如何正确地关掉该服务。在 Linux 环境下,我们可以通过多种方式来关闭正在运行的 jar 服务,这篇文章将为您介绍几种实用的方法。
关闭服务前的准备
在关闭 jar 服务之前,我们需要先了解该服务的运行情况,包括服务运行的端口号和进程 ID。可以通过以下命令来查看正在运行的 jar 服务:
“`
ps -ef | grep java
“`
该命令会列出所有正在运行的 Java 进程,其中包括 jar 服务。我们可以根据服务运行时的参数和 jar 包名称来确定需要关闭的服务进程。例如,运行以下命令可以检索名称中包含关键字 “my-service” 的服务进程:
“`
ps -ef | grep “my-service”
“`
该命令将返回所有包含 “my-service” 关键字的进程信息,其中包括进程 ID 和监听的端口号,这些信息将在关闭服务时被用到。
方法一:手动关闭服务
之一种关闭方式是最简单的,也是最暴力的方法,我们可以使用 kill 命令来结束正在运行的 jar 服务进程。具体步骤如下:
1. 根据之一步所述方法,查找到需要关闭的 jar 服务进程 ID;
2. 执行以下命令结束该进程:
“`
kill -9
“`
在该命令中,-9 参数会强制结束该进程,无论该进程是否在执行中。
该方法看似简单,但有一个明显的缺点,即如果使用错误的进程 ID,可能会误杀其他正在运行的进程,进而造成损失。
方法二:使用 killall 命令
第二种关闭方式是使用 killall 命令,该命令可以根据进程的名称来关闭正在运行的所有进程。以下是具体步骤:
1. 根据之一步所述方法,查找到需要关闭的 jar 服务进程的名称;
2. 执行以下命令结束该进程:
“`
killall -9 java
“`
该命令会关闭所有名为 java 的进程,包括我们需要关闭的 jar 服务进程。
与方法一相比,该方法需要注意的问题是该命令会关闭所有名为 java 的进程,如果有其他名为 java 的进程正在运行,也会被关闭。
方法三:使用 fuser 命令
第三种关闭方式是使用 fuser 命令,该命令可以根据端口号来查找正在运行的进程,并关闭它。以下是具体步骤:
1. 根据之一步所述方法,查找到需要关闭的 jar 服务进程的端口号;
2. 执行以下命令结束该进程:
“`
fuser -k /tcp
“`
在该命令中,-k 参数表示强制结束该进程, 表示该服务所监听的端口号,/tcp 表示使用 TCP 协议。(如果该服务使用的是 UDP 协议,则需要在命令中指定 -udp 参数)
该方法的优点是可以精确地查找到运行服务的进程,不会误杀其它进程。但是需要注意的是,如果该端口号被多个进程共用,那么这些进程都将被关闭。
方法四:使用 pkill 命令
第四种关闭方式是使用 pkill 命令,该命令可以根据进程名和其他参数来查找并关闭正在运行的进程。以下是具体步骤:
1. 根据之一步所述方法,查找到需要关闭的 jar 服务进程的名称、运行参数等信息;
2. 执行以下命令结束该进程:
“`
pkill -f
“`
在该命令中,-f 参数允许我们根据进程名或运行参数来查找进程并关闭它。
该方法的优点是可以精确查找到要关闭的进程,并且不会误杀其他进程。
方法五:使用 systemd 管理服务
第五种关闭方式是使用 Systemd 管理服务,这种方式需要我们在运行 jar 服务时配置 Systemd 服务,从而实现对服务的管理和维护。以下是具体步骤:
1. 在 /etc/systemd/system/ 目录下创建一个新的服务文件,例如 my-service.service,并添加以下内容:
“`
[Unit]
Description=My Service
After=network.service
[Service]
User=leon
WorkingDirectory=/home/leon/my-service
ExecStart=/usr/bin/java -jar /home/leon/my-service/my-service.jar
SuccessExitStatus=143
[Install]
WantedBy=multi-user.target
“`
在该文件中,需要配置服务的描述、依赖、运行用户、运行目录、启动命令等信息。其中,ExecStart 配置的命令是启动服务的命令,SuccessExitStatus 配置的是服务成功退出的状态码。
2. 执行以下命令启动服务:
“`
systemctl start my-service.service
“`
执行该命令后,我们可以通过以下方式来检查服务是否成功运行:
“`
systemctl status my-service.service
“`
3. 执行以下命令来关闭服务:
“`
systemctl stop my-service.service
“`
该命令会关闭服务,并清理所有相关的进程和资源。我们也可以通过以下命令来重启服务:
“`
systemctl restart my-service.service
“`
该方式的优点是可以实现对服务的全面管控,并且可以方便地进行开机自启等操作。
相关问题拓展阅读:
- ideajar包一键上传如何停止原来jar包
ideajar包一键上传如何停止原来jar包
Linux运行和停止jar包的方法
1 背景
Java项目开发完毕打好jar包,就需要把该jar包上传到Linux上去运行,如果老哥使用windows当我没说⁄(⁄ ⁄•⁄ω⁄•⁄ ⁄)⁄。
我们想到的可能就是通过 java -jar platform-scm-v108.jar 的方式来运行jar包,程序运行正常,但是运行期间窗口被锁定。当我们关闭窗口或Ctrl + C打断程序运行时,程序就会退出;停止时会先通过 ps -ef | grep platform-scm-v108.jar 找出jar包的进程,然后再kill掉。这样太繁琐了,下面就根据线上经验总结下jar优雅启动、停止的步骤:
2 Linux启动jar包的方式
2.1 简单后台启动
java -jar platform-scm-v108.jar –spring.profiles.active=product –server.port=8080 &
说明:& 表示后台运行,ssh窗口不被锁定,但是关闭窗口时,程序还是会退出;
2.2 不挂断后台启动
nohup java -jar platform-scm-v108.jar –spring.profiles.active=product –server.port=8080 &
说明:nohup 表示不挂断运行命令行,当账号退出或关闭终端时,程序仍然运行,当用 nohup 命令执行作业时,该作业的所有输出被重定向到nohup.out的文件中,除非另外指定了输出文件。
2.3 不挂断后台启动并重定向日志
nohup java -jar platform-scm-v108.jar –spring.profiles.active=product –server.port=8080 >李梁/data/platform/log/platform-scm.txt &
说明:> /data/platform/log/platform-scm.txt platform-scm.txt文件中
3 停止jar包
3.1 简单两步走
ps -ef | grep platform-scm-v108.jar
# 找到对应的进程然后杀掉
kill -9 进程号
说明 :枯扰悉分两步,操作繁琐;
3.2 一条指没乎令停止法
kill -9 `ps -ef | grep platform-scm-v108.jar | grep -v ‘grep’ `
说明:两次使用管道,排除其他进程,直接杀掉相应的进程。
4 线上环境脚本参考
4.1 启动脚本
nohup java -jar platform-scm-v108.jar –spring.profiles.active=product –server.port=8080 &
4.2 停止脚本
kill -9 `ps -ef | grep platform-scm-v108.jar | grep -v ‘grep’ `
4.3 重启脚本
kill -9 `ps -ef | grep platform-scm-v108.jar | grep -v ‘grep’ `
sleep 2
nohup java -jar platform-scm-v108.jar –spring.profiles.active=product –server.port=8080 &
sleep 2
tail -f nohup.out
可通过下面的方法停止原来的jar包:
1.打包
IDEA–maven–package
左侧targe–xxx.jar文件(塌锋厅还有一个原始jar包)(可以选择直接在IDEA里面基颂运行jar包)
2.启动程序,复制xxx.jar到相应目录,来到相应目录下,在地址栏输入cmd并回车,进入命令行
3.运行
java -jar xxx.jar
4.来到浏览器地址栏输入相应的团隐url,回车查看结果
localhost:端口号/方法路径?参数=王菲
5.终止程序,回到命令行
6.运行
linux下关闭jar服务的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux下关闭jar服务,Linux如何关闭jar服务,ideajar包一键上传如何停止原来jar包的信息别忘了在本站进行查找喔。