一、后台运行jar
1 | nohup java -jar /home/spring_one_demo-0 .0.1-SNAPSHOT.jar > spring.log 2>&1 & |
1 | nohup java -jar admin.jar >> nohup .out 2>&1 & |
不生成nohup.out
1 | nohup java -jar admin.jar > /null 2>&1 & |
上述命令会使jar包在后台运行,用户退出也不会终止程序。
其中:末尾的&,使用指定后台运行nohup命令表示,系统后台不挂断地运行命令,退出终端不会影响程序的运行。不加这个命令,即使使用&,在退出远程连接后还是终止程序。
> spring.log,是nohup的相关命令,表示将原本会打印在控制台的文件打印到spring.log里。该文件如果未指定路径,会在当前目录生成。
2>&1,同样是nohup相关,表示将标准错误 2 重定向到标准输出 &1 ,标准输出 &1 再被重定向输入到 runoob.log 文件中。
如果不加这一命令会生成如下提示:
1 | nohup : ignoring input and redirecting stderr to stdout |
二、终止jar程序
1、首先找到该jar在运行时产生的进程号pid
- 1.1.在运行成功时会自动返回一个pid,如下图5509既是。
- 1.2.根据jar所占用端口(如果有端口占用),如下图5509既是。
1 | netstat -nlp | grep :80 |
- 1.3.根据java程序查找
1 | ps -ef | grep java |
- 1.4.根据Jar包查询进程号
1 | ps aux| grep jar |
2、根据进程号pid,结束进程
1 | kill -9 5509 |
检查运行结果:
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持IT俱乐部。