一、 介绍
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 |
标准错误输出 | 2 | 2> 或 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。