一、日志重定向

利用nohup将程序后台运行时,方便查看日志,可以开启日志记录。

nohup ./myapp >./output.log 2>&1 &

说明:
1)nohup 为命令字
2)./myapp 为当前目录下要运行的程序
3)>为重定向符号
4)./output.log 为目标输出文件
5)0、1和2分别表示标准输入、标准输出和标准错误信息输出,可以用来指定需要重定向的标准输入或输出。

扩展知识:
由于使用nohup时,会自动将输出写入nohup.out文件中,如果文件很大的话,nohup.out就会不停的增大,这是我们不希望看到的,因此,可以利用/dev/null来解决这个问题: >/dev/null 2>log & , 如果错误信息也不想要的话: >/dev/null 2>&1 &

1)如果想要正常输出和错误信息都不显示,则要把标准输出和标准错误都重定向到/dev/null, 例如:1>/dev/null 2>/dev/null

2)还有一种做法是将错误重定向到标准输出,然后再重定向到 /dev/null,例如:>/dev/null 2>&1

**注意:**此处的顺序不能更改,否则达不到想要的效果,此时先将标准输出重定向到 /dev/null,然后将标准错误重定向到标准输出,由于标准输出已经重定向到了/dev/null,因此标准错误也会重定向到/dev/null)

二、日志追加/覆盖

1、nohup后台运行日志追加
下面命令在程序每次重启后会将日志追加至日志文件中,不会清空上次运行日志:

nohup ./app >> ./output.log 2>&1 &

2、nohup后台运行日志每次清空
下面命令在程序每次重启后会将上次运行日志清空:

nohup ./wechat > ./output.log 2>&1 &

看来看去其实就是多了一个符号~~~

Logo

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

更多推荐