在linux中如何后台运行java项目(详细)

目录

1.查看是否安装有jdk环境

2.将打包好的jar上传到linux服务器上

3.运行java程序

直接运行:

[使用 &](#使用 &)

[使用 nohup + &](#使用 nohup + &)

扩展知识


1.查看是否安装有jdk环境

java -version

如果可以查看到jdk版本 ,那就代表环境配置好了

2.将打包好的jar上传到linux服务器上

3.运行java程序

直接运行:

java -jar jar包名

直接运行的弊端:

  • 直接执行程序后,在程序执行期间,无法在当前会话中再执行其他操作
  • 直接执行程序后,按Ctrl+C中断;这时虽然可以在当前会话中执行其他操作,但是程序也结束运行了
使用 &
  • & :表示程序在后台运行,这样就可以在程序的执行期间,还能在当前会话中执行其他操作

  • 使用格式:command &

java -jar hzlHotal-1.0-SNAPSHOT.jar &

注意:

  • 单独使用 & , 只能实现在程序的执行期间,还能在当前会话中执行其他操作;但关闭当前会话,程序依然会自动结束
使用 nohup + &
  • nohup:英文全称 no hang up ,用于在系统中不挂断地运行命令,即使退出终端也不会影响程序的运行

  • 使用格式:nohup command

注意:

  • 单独使用 nohup ,只能实现关闭当前会话后,程序依然能继续运行,但无法在当前会话中再执行其他操作;强行使用Ctrl+C中断的话,这时虽然可以在当前会话中执行其他操作,但是程序也结束运行了
  • nohup 会默认将程序的输出信息从标准输出重定向到当前目录的nohup.out文件中;因此可以不用额外使用 > test.log 将程序的输出信息从标准输出重定向到(test.log)文件中

使用nohup + &

  • 单独使用 & , 只能实现在程序的执行期间,还能在当前会话中执行其他操作;但关闭当前会话,程序依然会自动结束
  • 单独使用 nohup ,只能实现关闭当前会话后,程序依然能继续运行,但无法在当前会话中再执行其他操作
  • 结合使用 nohup 和 & ,能同时实现:在程序的执行期间,还能在当前会话中执行其他操作;关闭当前会话后,程序依然能继续运行
  • 结合使用格式:nohup command &
  • 后台启动,控制台退出不会关掉应用

nohup java -jar hzlHotal-1.0-SNAPSHOT.jar &

  • 后台启动并且输出日志,控制台退出不会关掉应用

nohup java -jar hzlHotal-1.0-SNAPSHOT.jar >> ./register.log 2>&1

扩展知识

当结合使用 nohup 和 & 执行程序后,要么程序执行完毕后自动结束(如果程序有结束条件),要么手动结束该进程

  • ps -aux | grep 程序名:通过程序名找到进程信息

  • kill -9 进程ID:通过进程ID结束进程

相关推荐
Web3探索者8 小时前
可视化服务器管理和传统命令行区别是什么?新手教程:Linux 运维到底该用图形界面还是 SSH 命令行?
linux·ssh
张不才8 小时前
CPU 100% 了怎么办?Java 性能排障的标准化操作
java·后端
shepherd1119 小时前
吞吐量提升 10 倍:高并发大批量数据处理任务的架构演进与性能调优
java·后端·架构
zylyehuo10 小时前
Linux系统中网线与USB网络共享冲突
linux
plainGeekDev12 小时前
单例模式 → object 声明
android·java·kotlin
用户2986985301413 小时前
Java 实现 Word 文档文本与图片提取的方法
java·后端
SimonKing14 小时前
铁子,IntelliJ IDEA 2026.1.3来了,升不升?
java·后端·程序员
咖啡八杯1 天前
GoF设计模式——策略模式
java·后端·spring·设计模式
用户128526116021 天前
我把祖传Java项目重构后,接口响应从3s砍到了200ms,只改了这几行代码
java