一、 介绍

nohup 是 no hang up 的缩写,就是不挂断的意思,但没有后台运行,终端不能标准输入,所以说添加 & ( 表示“and”的符号)到命令的尾部。
nohup 我们经常用来后台启动Java 程序,在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中

nohup java -jar shop-admin-s.jar &

二、nohup.out的查看日志方法

// 实时查看
tail -f nohup.out
//  查看最后1000行日志文本
tail -1000 nohup.out

三、nohup.out文件过大

nohup.out会一直一直自己增长下去,因此就有了我们不停止服务直接,清空nohup.out文件的方法。
两个可以不用停止WEB服务就可以清空nohup.out的命令。

// 第一种 :/dev/nul把它丢弃一切写入其中的数据 意思就是把空的复制粘贴 给nohup.out
cp /dev/null nohup.out
// 第二种: 把无底洞定向输出到 nohup.out 起到清空作用
cat /dev/null > nohup.out

四、 输入输出重定向

名称代码操作符Java中表示
标准输入0< 或 <<System.in
标准输出1>或>>或 1> 或 1>>System.out
标准错误输出22> 或 2>>System.err

常见的命令 比如 查看当前目录详细信息,并且将结果输出到 a.txt 文件里

ls -l > a.txt 就是 ls -l 1> a.txt的缩写

1.在缺省情况下该作业的所有输出都被重定向到一个名为nohup.out的文件中

nohup java -jar shop-admin-s.jar &

2.将标准错误输出重定向到标准输出到当前目录下叫log的文件

注意不能写反 >log 一定要写在前面 : 意思是1指向log文件,2 指向1,所以2也指向log满足输出到log
如果是错误写法,则为2指向1,又因为1默认指向屏幕 ,所以2指向屏幕,然后 >log 造成1重新指向log

// 标准错误输出和标准输出都定向到log中  
nohup java -jar shop-admin-s.jar >log 2>&1 &
// 简写
nohup java -jar shop-admin-s.jar &>log &

3.什么信息也不要

nohup java -jar shop-admin-s.jar >/dev/null 2>&1 &

4 .只输出错误信息

nohup java -jar shop-admin-s.jar >/dev/null 2>log &

关于/dev/null文件
Linux下还有一个特殊的文件/dev/null,它就像一个无底洞,所有重定向到它的信息都会消失得无影无踪。这一点非常有用,当我们不需要回显程序的所有信息时,就可以将输出重定向到/dev/null。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐