Linux如何关闭jar服务 (linux下关闭jar服务)

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包

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–.jar文件(塌锋厅还有一个原始jar包)(可以选择直接在IDEA里面基颂运行jar包)

2.启动程序,复制.jar到相应目录,来到相应目录下,在地址栏输入cmd并回车,进入命令行

3.运行

java -jar .jar

4.来到浏览器地址栏输入相应的团隐url,回车查看结果

localhost:端口号/方法路径?参数=王菲

5.终止程序,回到命令行

6.运行

linux下关闭jar服务的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux下关闭jar服务,Linux如何关闭jar服务,ideajar包一键上传如何停止原来jar包的信息别忘了在本站进行查找喔。


数据运维技术 » Linux如何关闭jar服务 (linux下关闭jar服务)