侧边栏壁纸
博主头像
清如许博主等级

努力成长为一颗大树,一半洒落阴凉,一半沐浴阳光,非常沉默非常骄傲,从不依靠从不寻找

  • 累计撰写 80 篇文章
  • 累计创建 44 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

centos7系统运行、停止java程序常用命令,springboot打包运行.md

清如许
2020-04-25 / 0 评论 / 0 点赞 / 265 阅读 / 658 字 / 正在检测是否收录...
温馨提示:
本文最后更新于 2022-05-21,若内容或图片失效,请留言反馈。部分素材来自网络,若不小心影响到您的利益,请联系我们删除。



对于Spring Boot导出的jar包程序

当连接的远程服务器执行的时候,一旦关闭了当前终端,程序也被迫停止运行了。这显然是不行的
我想要的是让它常驻后台执行,不受启动其终端关闭与否的影响。

解决办法

在jar包文件所在的目录执行以下命令:

 nohup java -jar springboot-0.0.1-SNAPSHOT.jar  >nohup 2>&1 &

nohup: 不挂断的执行命令,忽略所有的挂断信号。 运行后台命令 最后加 &
在jar目录下会生成一个nohup.out文件,默认的log输出到这里了。

命令解释

以上命令是不输出启动日志的,运行后会只输出一个运行的进程号。
想要输出启动日志可以这样:

java -jar xx.jar > log.file 2>&1 &

这里启动信息就输出到了日志文件上,注意的是log文件需要先创建chmod授权
可以给日志一个777授权,测试阶段无所谓:

chmod 777 -R /home/logs
2>&1含义

& 1 更准确的说是文件描述符 1,
而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用
.他标准输出到all_result ,然后复制标准输出到文件描述符2(STDERR_FILENO), 其后果就是文件描述符1和2指向同一个文件表项,也可以说错误的输出被合并了
.其中0表示键盘输入 1表示屏幕输出 2表示错误输出.把标准出错重定向到标准输出,然后扔到/DEV/NULL下面去。通俗的说,就是把所有标准输出和标准出错都扔到垃圾桶里面。
|值|含义 |
|--|--|
| 0 |标准输入(一般是键盘) |
|1|标准输出(一般是显示屏,准确的说是用户终端控制台)|
|2|标准错误(出错信息输出)|

最后一个& , 是让该命令在后台执行

查看进程

查看全部进程

ps -ef 

查看java进程

ps -ef |grep java

在这里插入图片描述
如图所示:
第一个进程是我jar包启动进程,第二个是java的查找进程不用管
前面的那个root是当前用户,第一个数字403是当前进程号
杀死当前进程

kill -9 403

只查询当前jar包程序的进程号:

pgrep -f 'java -jar springboot-0.0.1-SNAPSHOT.jar'

如图所示:
在这里插入图片描述

0

评论区