springboot项目不输出nohup.out日志的解决

 更新时间:2021年07月27日 14:25:45   作者:yang名扬  
这篇文章主要介绍了springboot项目不输出nohup.out日志的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

springboot不输出nohup.out日志

nohup java -jar mgcr_pc-0.0.1-SNAPSHOT.war >/dev/null 2>log & 

注意:这个log是一个文件,可以随意命名

ps aux|grep 你刚刚运行的包名.jar

然后会显示线程id

关闭进程 如5555

kill -9 5555

nohup启动程序后,nohup.out过大的解决

一般百度到都会说:

cp /dev/null nohup.out
cat /dev/null nohup.out

不能简单的删除那个文件,因为linux的文件管理是引用计数法。

可以清空nohup日志,其实关键在于启动时的流输入方式。如果使用>方式,使用上述方法操作后,再次写入时,文件会重新变成原来的大小,而使用>>追加方式,确实可以消除文件的大小。

原因基本描述如下:

linux的文件管理使用fd,用户可以自定义3以上(包括3)的文件,而0,1,2,则对应了3个标准流

  • 0=标准输入流stdin
  • 1=标准输出流stdout
  • 2=标准错误流stderr

shell读取到>时,判断文件是否存在,不存在则创建文件,之后以w方式写入,文件指针只会向后增加。

因此使用>作为nohup的重定向时,文件指针一直向后增加,使用上述两个命令操作nohup.out,操作时确实重写了整个文件,但是在程序的下次输出时,文件的大小又重新变回原来的大小了,这很正常,因为文件的指针还在原来的大小的位置,写入操作时,指针向后偏移“输出内容的大小”,并写入“输出内容”,此时文件不得不重新回到原本的大小,虽然原本的内容已经不见了(此时那些内容的填充为0,类似的操作一次,然后查看nohup文件的16进制表示,就会发现它们全部都是0x00,可以称为文件空洞)

而使用>>方式写入文件时,使用a+方式写入文件,文件指针指向文件的结束符EOF位置。

在使用使用上述两个命令操作nohup.out时,文件的结束符确实重新回到了0x00地址,因此可以清空原本的内容,并且不会再创建文件空洞。

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Java程序启动时初始化数据的四种方式

    Java程序启动时初始化数据的四种方式

    本文主要介绍了Java程序启动时初始化数据的四种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-02-02
  • Spring Cloud Eureka服务注册中心入门流程分析

    Spring Cloud Eureka服务注册中心入门流程分析

    这篇文章主要介绍了Spring Cloud Eureka服务注册中心入门流程分析,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • java如何去除图片中的白色背景

    java如何去除图片中的白色背景

    这篇文章主要为大家详细介绍了java去除图片中白色背景的方法,教大家如何将图片中的白色背景去掉,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-04-04
  • SpringBoot基于自定义注解实现切面编程

    SpringBoot基于自定义注解实现切面编程

    这篇文章主要介绍了SpringBoot基于自定义注解实现切面编程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-11-11
  • Java实战之用Swing实现通讯录管理系统

    Java实战之用Swing实现通讯录管理系统

    今天给大家带来的是Java实战的相关知识,文章围绕着Swing实现通讯录管理系统展开,文中有非常详细的代码示例,需要的朋友可以参考下
    2021-06-06
  • 基于springboot微信公众号开发(微信自动回复)

    基于springboot微信公众号开发(微信自动回复)

    这篇文章主要介绍了基于springboot微信公众号开发(微信自动回复),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-11-11
  • 解决java -jar XXX.jar没有主清单属性以及找不到或无法加载主类的问题

    解决java -jar XXX.jar没有主清单属性以及找不到或无法加载主类的问题

    在使用Idea打包SpringBoot项目时,可能会遇到“没有主清单属性”的错误,问题原因是pom文件中缺少配置,未能正确打包成可执行的jar,解决方法包括:1. 修改项目结构并重新生成jar;2. 使用Maven插件在pom文件中添加spring-boot-maven-plugin配置
    2024-09-09
  • SpringBoot自定义线程池,执行定时任务方式

    SpringBoot自定义线程池,执行定时任务方式

    这篇文章主要介绍了SpringBoot自定义线程池,执行定时任务方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • SpringBoot使用Caffeine实现内存缓存示例详解

    SpringBoot使用Caffeine实现内存缓存示例详解

    caffeine提供了四种缓存策略:分别为手动加载、自动加载、异步手动加载、异步自动加载,这篇文章主要介绍了SpringBoot使用Caffeine实现内存缓存,需要的朋友可以参考下
    2023-06-06
  • Spring Boot使用Value注解给静态变量赋值的方法

    Spring Boot使用Value注解给静态变量赋值的方法

    这篇文章主要介绍了Spring Boot使用Value注解给静态变量赋值的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-07-07

最新评论