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. 执行以下命令结束该进程:
在该命令中,-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. 执行以下命令结束该进程:
在该命令中,-f 参数允许我们根据进程名或运行参数来查找进程并关闭它。
该方法的优点是可以精确查找到要关闭的进程,并且不会误杀其他进程。
方法五:使用 Systemd 管理服务
第五种关闭方式是使用 Systemd 管理服务,这种方式需要我们在运行 jar 服务时配置 Systemd 服务,从而实现对服务的管理和维护。以下是具体步骤:
1. 在 /etc/systemd/system/ 目录下创建一个新的服务文件,例如 my-service.service,并添加以下内容:
Description=My Service
After=network.service
WorkingDirectory=/home/leon/my-service
ExecStart=/usr/bin/java -jar /home/leon/my-service/my-service.jar
SuccessExitStatus=143
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’ `
nohup java -jar platform-scm-v108.jar –spring.profiles.active=product –server.port=8080 &
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包的信息别忘了在本站进行查找喔。
香港服务器首选树叶云,2H2G首月10元开通。树叶云(shuyeidc.com)提供简单好用,价格厚道的香港/美国云 服务器 和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
Linux下安装jdk显示javac cannot execute binary file
查看linux位数:#uname -a如果有x86_64就是64位的,没有就是32位的这是64位的# uname -aLinux desktop 2.6.35-23-generic #37-Ubuntu SMP Fri Nov 5 19:17:11 UTC 2010 i686 GNU/Linux这是32位的#uname -aLinux backup #1 SMP Wed Nov 7 13:58:04 EST 2007 i686 i686 i386 GNU/Linux注意:Ixxx的全是32位的,有X86—64的全是64位在安装过程中还遇到其他问题及解决方法jdk版本过老(1.4),需要卸载的问题,解决如下:[root@localhost~]# java -versionjava version 1.4.2gij (GNU libgcj) version 4.1.2 (Red Hat 4.1.2-42)[root@localhostsoft]# rpm -qa | grep jdk[root@localhostsoft]# rpm -qa | grep 5java-1.4.2-gcj-compat-1.4.2.0-40jpp.115上面先确认jdk的具体版本号,然后[root@localhostjdk1.6.0_11]# yum -y remove java-1.4.2-gcj-compat-1.4.2.0-40jpp.115Setting up Remove ProcessResolving Dependencies………..(开始卸载)resolver.i386 0:1.1-1jpp.12Complete!(卸载完成)
Linux 下 halt,poweroff,shutdown 有什么区别
在linux下一些常用的关机/重启命令有shutdown、halt、reBoot、init及poweroff,它们都可以达到重启系统的目的,但每个命令的内部工作过程是不同的。 命令安全地将系统关机。 有些用户会使用直接断掉电源的方式来关闭linux,这是十分危险的。 因为linux与windows不同,其后台运行着许多进程,所以强制关机可能会导致进程的数据丢失﹐使系统处于不稳定的状态﹐甚至在有的系统中会损坏硬件设备。 而在系统关机前使用shutdown命令﹐系统管理员会通知所有登录的用户系统将要关闭。 并且login指令会被冻结﹐即新的用户不能再登录。 直接关机或者延迟一定的时间才关机都是可能的﹐还可能重启。 这是由所有进程〔process〕都会收到系统所送达的信号〔signal〕决定的。 这让像vi之类的程序有时间储存目前正在编辑的文档﹐而像处理邮件〔mail〕和新闻〔news〕的程序则可以正常地离开等等。 shutdown执行它的工作是送信号〔signal〕给init程序﹐要求它改变runlevel。 Runlevel 0被用来停机〔halt〕﹐runlevel6是用来重新激活〔reboot〕系统﹐而runlevel1则是被用来让系统进入管理工作可以进行的状态﹔这是预设的﹐假定没有-h也没有-r参数给shutdown。 要想了解在停机〔halt〕或者重新开机〔reboot〕过程中做了哪些动作﹐你可以在这个文件/etc/inittab里看到这些runlevels相关的资料。 shutdown 参数说明:[-t] 在改变到其它runlevel之前﹐告诉init多久以后关机。 [-r] 重启计算器。 [-k] 并不真正关机﹐只是送警告信号给每位登录者〔login〕。 [-h] 关机后关闭电源〔halt〕。 [-n] 不用init﹐而是自己来关机。 不鼓励使用这个选项﹐而且该选项所产生的后果往往不总是你所预期得到的。 [-c] cancel current process取消目前正在执行的关机程序。 所以这个选项当然没有时间参数﹐但是可以输入一个用来解释的讯息﹐而这信息将会送到每位使用者。 [-f] 在重启计算器〔reboot〕时忽略fsck。 [-F] 在重启计算器〔reboot〕时强迫fsck。 [-time] 设定关机〔shutdown〕前的时间。 —-最简单的关机命令其实halt就是调用shutdown -h。 halt执行时﹐杀死应用进程﹐执行sync系统调用﹐文件系统写操作完成后就会停止内核。 参数说明:[-n] 防止sync系统调用﹐它用在用fsck修补根分区之后﹐以阻止内核用老版本的超级块〔superblock〕覆盖修补过的超级块。 [-w] 并不是真正的重启或关机﹐只是写wtmp〔/var/log/wtmp〕纪录。 [-d] 不写wtmp纪录〔已包含在选项[-n]中〕。 [-f] 没有调用shutdown而强制关机或重启。 [-i] 关机〔或重启〕前﹐关掉所有的网络接口。 [-p] 该选项为缺省选项。 就是关机时调用poweroff。 的工作过程差不多跟halt一样﹐不过它是引发主机重启﹐而halt是关机。 它的参数与halt相差不多。 是所有进程的祖先﹐它的进程号始终为1﹐所以发送TERM信号给init会终止所有的用户进程﹑守护进程等。 shutdown就是使用这种机制。 init定义了8个运行级别(runlevel),init 0为关机﹐init1为重启。 关于init可以长篇大论﹐这里就不再叙述。 另外还有telinit命令可以改变init的运行级别﹐比如﹐telinit-iS可使系统进入单用户模式﹐并且得不到使用shutdown时的信息和等待时间。 在关闭计算机操作系统之后,最后还会发送ACPI指令,通知电源,最后切断电源供应,当然路由器等嵌入系统不支持ACPI的,所以这个无效。 Linux 下 halt,poweroff,shutdown 有什么区别
摩托罗拉E680g好不好用!
好用,相当好用先说游戏的格式:在刷机之前:可以玩jar\jad(JAVA)的游戏,这种后缀游戏有许多都很好,下载到手机就可以直接安装,建议下载破解RPG的游戏,里面有些极品服务菜单,就是那些需要发短信的,但是破解后就不需要了。 下载地址如:手机游戏下载网、捉鱼、塞班等等。 如果把JAVA游戏玩腻以后,就可以去塞班、摩托罗拉智能手机论坛下刷机包刷机,那里面有很多的教程,如果不会,可以用“雄鹰”等辅助软件。 刷机过后就可以安装的后缀软件或游戏,到了这个阶段就很好了,MPKG的经典游戏有“毁灭战士”、“毁灭巫师”、“魔兽争霸”(和电脑的不相上下)等等大游戏了。 如果你是一个喜欢玩GBA、任天堂红白机、世嘉游戏的游戏者,可以从网上下载游戏模拟器,E680系列毕竟是手机中的强者,软件比较发达,下载以为后缀的模拟器软件后就可以玩GBA\MD\NES\FBA等游戏了。 E680的按键比较方便横着就好比一个GBA,玩游戏非常爽,要是加上一个1500毫安的商务电池可以从早上一直玩到下午。 软件类:就如如上所说在刷机之前可以用jar、jad的软件,比如金山词霸就是属于java扩展。 刷机后可以用linux操作系统下的MPKG软件格式了,e680问世较早,而且很红,有很多MPKG软件,这要看你自己喜欢了。 E680属于音乐手机,在音质和电影画面上都非常棒,有些人或者觉得E680的声音太小了,其实不让,面对那些音质大但是会产生破音的手机,小E的音质就显得尤为突出了.再说手机看电影方面,E680自带的REAL PALYER可以播放3GP、MP4、rmvb的格式,但是就是不能播放avi格式的视频,这里可以用上网下载一个E680的暴风影音或影音天使来播放了,我个人使用的是暴风影音,因为支持的格式很多很全,而且可以播放flv网络视频的文件。 E680的DIY性很强,在网上有什么E680的杀毒软件,可以在手机上运行,但是都没用,E680属于linux的操作系统,而病毒几乎百分之99都是微软的,所以linux对几乎所有的病毒都有抵抗性,可以说百毒不侵,下载杀毒软件纯属鸡肋!补充那个一下,手机的信号是由服务商的类型来定,比如有些地方联通有信号,移动就没有!
发表评论