Plantre Plantre
首页
后端
技术
硬件
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 技术

    • 技术文档
    • GitHub技巧
    • Nodejs
    • 博客搭建
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

plantre

一个后端开发者
首页
后端
技术
硬件
  • 前端文章

    • HTML
    • CSS
    • JavaScript
  • 技术

    • 技术文档
    • GitHub技巧
    • Nodejs
    • 博客搭建
  • 学习笔记

    • 《JavaScript教程》
    • 《JavaScript高级程序设计》
    • 《ES6 教程》
    • 《Vue》
    • 《React》
    • 《TypeScript 从零实现 axios》
    • 《Git》
    • TypeScript
    • JS设计模式总结
  • 学习
  • 面试
  • 心情杂货
  • 实用技巧
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 虚拟化

  • Git

  • 可视化

  • Linux

    • Linux 系统中常见目录符号
    • nohub启动jar并保存日志到文件
    • Linux添加SSH公钥
    • ssh命令常用场景详解
    • lvm是什么,和文件系统什么关系,windows下有吗
    • linux查询某个文件夹大小
    • linux删除某个文件夹
    • linux根目录下的文件夹解析
    • linux的文件权限解析
    • dev-null是什么
    • 2&1是什么意思
    • .ssh下有哪些文件,分别有什么作用
    • known_hosts具体举例说明
    • 非对称加密原理和真实数据举例
    • 查询linux端口是否占用
    • 若 SELinux 处于 Enforcing 模式,需在挂载路径后添加 Z是什么意思
    • linux查看每个进程内存大小
    • 分辨文件的种类
  • 远程串流等

  • SWF

  • 网络

  • 网站收藏
  • 技术
  • Linux
plantre
2025-05-08

nohub启动jar并保存日志到文件

在Linux系统中使用nohup启动JAR包并保存日志到文件,可通过以下步骤实现:


一、基础命令 1. 标准输出与错误输出合并到单一文件

nohup java -jar your_app.jar > /path/to/logs/app.log 2>&1 &
1

• nohup:使进程在后台持续运行,即使关闭终端也不会中断。

• > /path/to/logs/app.log:将标准输出(正常日志)重定向到指定文件。

• 2>&1:将标准错误输出重定向到标准输出,实现错误日志与正常日志合并存储。

• &:后台运行进程。

2. 仅输出错误日志

nohup java -jar your_app.jar > /dev/null 2>/path/to/logs/error.log &
1

• > /dev/null:丢弃标准输出(适用于仅需记录错误信息的场景)。

• 2> /path/to/logs/error.log:将错误日志单独保存到指定文件。


二、进阶配置 1. 按日期分割日志文件 通过date命令动态生成日志文件名,实现按日存储:

nohup java -jar your_app.jar > /path/to/logs/$(date +"%Y-%m-%d").log 2>&1 &
1

• $(date +"%Y-%m-%d"):生成当前日期字符串(如2025-05-04.log)。

• 注意:需确保目标目录已存在,否则需手动创建或通过脚本处理。

2. 使用cronolog实现日志轮转 安装cronolog工具后,可按日/月分割日志:

nohup java -jar your_app.jar | /usr/sbin/cronolog /path/to/logs/%Y-%m-%d.log &
1

• %Y-%m-%d:自动生成日期格式的日志文件(如2025-05-04.log)。


三、验证与维护 1. 查看实时日志

tail -f /path/to/logs/app.log  # 实时跟踪日志更新
1

2. 检查进程状态

ps -ef | grep java  # 查看Java进程是否运行
1

3. 停止进程

kill -9 <PID>  # 通过进程ID终止服务
1

四、脚本化启动(推荐) 创建启动脚本start.sh,便于重复使用:

#!/bin/bash
APP_HOME=/opt/app
LOG_DIR=$APP_HOME/logs
mkdir -p $LOG_DIR
nohup java -jar $APP_HOME/your_app.jar > $LOG_DIR/app_$(date +"%Y%m%d").log 2>&1 &
echo "应用已启动,日志路径:$LOG_DIR/app_$(date +"%Y%m%d").log"
1
2
3
4
5
6

• 赋予执行权限:chmod +x start.sh。

• 运行脚本:./start.sh。


五、注意事项

  1. 路径权限:确保日志目录具有写入权限,否则会因权限不足导致启动失败。
  2. 日志文件大小:长期运行需定期清理或配置日志轮转(如logrotate工具)。
  3. JVM参数优化:根据需求调整内存参数(如-Xms、-Xmx),避免内存溢出。

最佳实践 • 推荐配置:合并标准输出与错误日志,便于统一排查问题。

• 日志保留策略:结合cron定时任务或日志管理工具(如logrotate)定期归档旧日志。

通过以上方法,可高效管理后台运行的JAR服务并保存日志,满足生产环境需求。

编辑 (opens new window)
上次更新: 2025/06/10, 09:18:05
Linux 系统中常见目录符号
Linux添加SSH公钥

← Linux 系统中常见目录符号 Linux添加SSH公钥→

最近更新
01
集成loki
07-04
02
TCP的ESTABLISHED是什么意思
06-24
03
安装1panel
06-24
更多文章>
Theme by Vdoing | Copyright © 2025-2025 plantre | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式