Linux下如何不停⽌服务,清空nohup.out⽂件
最近发现有不少⼈在百度这个问题,当初如易我也是初学者,随便从⽹上搜了⼀下,就转过来了,不过为了避免搜索结果同质化,为⼤家提供更翔实的参考,我将nohup.out相关知识整理汇总如下:
⽤途:LINUX命令⽤法,不挂断地运⾏命令。
语法:nohup Command [ Arg … ] [ & ]
描述:命令运⾏由 Command 参数和任何相关的 Arg 参数指定的命令,忽略所有挂断(SIGHUP)信号。在注销后使⽤ nohup 命令运⾏后台中的程序。要运⾏后台中的 nohup 命令,添加 & (表⽰“and”的符号)到命令的尾部。
例⼦: nohup ./startWeblogic.sh & 意思是即使退出ssh界⾯,命令仍然在后台执⾏,并且打印过程⽇志到nohup.out,当然也可以将nohup.out 的输出转向到其他⽂件,⾼级应⽤请参考扩展阅读。
实际使⽤过程中,往往⼈们为了省⼼(嗯,没错,就是懒),经常没有给nohup.out进⾏重定向输出,也没有按⽇期分割⽂件,会造成这个⽂件特别巨⼤,达到2G或者3G,这个使⽤想查看⽂件,搜索出错内容就⽐较痛苦了。⼀般有两种⽅式
1.linux本机查看:使⽤tail 命令,查看最新的⽇志,或滚动监控⽇志打印。
例如命令 tail -1000 nohup.out (查看最后1000⾏⽇志⽂本) tail -f nohup.out(监控⽇志打印)
2.ftp下载到windown主机查看:⼀般⼩的log⽂件都没有问题,但是过G的,⼀般的⽂本⽂档查看就显得⽆⼒了。推荐使⽤UltraEdit进⾏打开。
如上⽂所述出现了超⼤号的⽂件简直是令⼈讨厌的事情,⽽且nohup.out会⼀直⼀直⾃⼰增长下去,如果你的服务器硬盘不给⼒的话,很容易把应⽤也挂掉(硬盘没空间,啥都玩不转),但是⼜不能⼀味的直接删。因为直接删除,可能会造成应⽤⽆法打印后续的错误⽇志,该问题常见于weblogic服务器,jboss服务器等这些⼤型中间件,这个在⽣产环境上要尤为注意。
因此就有了我们不停⽌服务直接,清空nohup.out⽂件的⽅法。
两个可以不⽤停⽌服务就可以清空nohup.out的命令。
第⼀种:
cp /dev/null nohup.out
第⼆种:
cat /dev/null > nohup.out
两个我都⽤过,不⽤担⼼⽹上所说的性能问题,通常2/3 个G的⽂件都是1-2秒执⾏完毕
linux重定向
4.扩展阅读
以下是定义⽇志打印级别,除了⾼于级别2的告警信息记录到log⽂件外,其余直接不记录
只输出错误信息到⽇志⽂件
nohup ./program >/dev/null 2>log &
什么信息也不要
nohup ./program >/dev/null 2>&1 &
2.Linux的3中重定向
0:表⽰标准输⼊
1:标准输出,在⼀般使⽤时,默认的是标准输出
2:标准错误信息输出
可以⽤来指定需要重定向的标准输⼊或输出。例如,将某个程序的错误信息输出到log⽂件中:./program 2>log。这样标准输出还是在屏幕上,但是错误信息会输出到log⽂件中。另外,也可以实现0,1,2之间的重定向。2>&1:将错误信息重定向到标准输出。
3.关于/dev/null⽂件
Linux下还有⼀个特殊的⽂件/dev/null,它就像⼀个⽆底洞,所有重定向到它的信息都会消失得⽆影⽆踪。这⼀点⾮常有⽤,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。