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对象方法的调用执行过程,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • java金额数字转中文工具类详解

    java金额数字转中文工具类详解

    这篇文章主要为大家详细介绍了java金额数字转中文工具类的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-04-04
  • Swing常用组件之多行文本区JTextArea

    Swing常用组件之多行文本区JTextArea

    这篇文章主要为大家详细介绍了Swing常用组件之多行文本区JTextArea,感兴趣的朋友可以参考一下
    2016-05-05
  • Mybatis plus 配置多数据源的实现示例

    Mybatis plus 配置多数据源的实现示例

    这篇文章主要介绍了Mybatis plus 配置多数据源的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Java从源码看异步任务计算FutureTask

    Java从源码看异步任务计算FutureTask

    这篇文章主要介绍了Java从源码看异步任务计算FutureTask,FutureTask就能够很好的帮助我们实现异步计算,并且可以实现同步获取异步任务的计算结果,具体是怎样实现的,下面我们就一起来学习下面文章的具体内容吧
    2022-04-04
  • SpringBoot中使用@Async实现异步任务调用详解

    SpringBoot中使用@Async实现异步任务调用详解

    这篇文章主要介绍了SpringBoot中使用@Async实现异步任务调用详解,一个可以无需等待被调用函数的返回值就让操作继续进行的方法(来自百度百科),即程序在顺序执行时,不等待异步调用的语句返回结果就执行后面的程序,需要的朋友可以参考下
    2023-12-12
  • Java实现UDP多线程在线咨询

    Java实现UDP多线程在线咨询

    这篇文章主要为大家详细介绍了Java实现UDP多线程在线咨询,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • Spring中@Scheduled和HttpClient的连环坑

    Spring中@Scheduled和HttpClient的连环坑

    这篇文章主要给大家介绍了关于Spring中@Scheduled和HttpClient的连环坑,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-03-03
  • Java中List删除元素的几种方法总结推荐

    Java中List删除元素的几种方法总结推荐

    这篇文章主要给大家介绍了关于Java中List删除元素的几种方法总结,相信大家在日常的开发过程中,经常需要对List或Map里面的符合某种业务的数据进行删除,需要的朋友可以参考下
    2023-10-10
  • 将内容写到txt文档里面并读取及删除的方法

    将内容写到txt文档里面并读取及删除的方法

    本文有个不错的示例,主要讲解如何将内容写到txt文档里面、读取文件里面的内容以及清除txt文件里面的内容
    2014-01-01

最新评论