栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

linux启动jar包方式及问题

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

linux启动jar包方式及问题

方式一

Java -jar jar包名.jar

特点:当前ssh窗口被锁定,但是当我们关闭窗口或Ctrl + C打断程序运行时,程序就会退出。

改进==》:

方式二

java -jar jar包名.jar &

&代表在后台运行。

特定:当前ssh窗口不被锁定,但是当窗口关闭时,程序还是会中止运行。

继续改进==》:

方式三

nohup java -jar jar包名.jar &

nohup 意思是不挂断运行命令,当账户退出或终端关闭时,程序仍然运行

当用 nohup 命令执行作业时,默认情况下该程序的所有输出被重定向保存到nohup.out的文件中,除非另外指定了输出文件。其实这已经达到了我们的目的。但还可以更自主。

方式四

nohup java -jar shareniu.jar >temp.txt &

和上一种的区别在于,多了>temp.txt。也就是指定输出log的文件。

可通过jobs命令查看后台运行任务

(​jobs是查看当前后台作业(进程),是获取本次bash进程下子进程的后台作业。

当本次终端退出后,后台作业变成孤儿进程,孤儿进程由系统父进程接管。

当再次连接终端时,原作业与当前终端,不存在关系父子关系,故看不到进程。

但是原作业,会在系统中一致运行,直到完成或被停止。所以终端退出后,jobs看不到的原因了。jobs、fg、netstat -nlp |grep :操作好像都只能针对当前连接开启的进程,未验证)

jobs

就会列出所有后台执行的作业,并且每个进程前面都有个编号。

如果想将某个作业调回前台控制,只需要 fg + 进程编号即可。

fg 进程id

查看某端口占用的线程的pid

netstat -nlp |grep :进程id

如果忘了进程号,可以通过如下命令来查看当前运行的jar包程序进程号

ps -ef|grep jar包名.jar

或者 ps -aux | grep java

//关闭进程

kill -s 9 进程id

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/327976.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号