您的位置首页百科问答

怎么查找nohup输出的日志文件位置

怎么查找nohup输出的日志文件位置

的有关信息介绍如下:

怎么查找nohup输出的日志文件位置

一起来了解下nohup命令输出日志的文件位置

首先,来看下run.sh脚本

"echo $HOME" 这是一条正常命令

"cat x”因为x文件是不存在的,所以会抛出异常

用nohup命令直接运行,可以看到在运行命令的当前目录生成了一个nohup.out,这就是默认的日志输出文件。再看下内容:

'/root' 和 'cat: x: No such file or directory'分别对应两条命令。

如果想要存放在自定义的日志文件里, 那我们要先来熟悉下一些概念:

标准输出 : STDOUT, 文件描述符是1,默认输出显示在终端

标准错误 : STDERR,文件描述符是2, 默认输出显示在终端

>文件名: 先清空文件,再添加信息

>>文件名: 在文件末尾追加信息

1>文件名(1可以省略 >文件名):先清空文件,再添加标准输出信息

2>文件名: 先清空文件,再添加标准错误信息

1>>文件名(1可以省略 >文件名): 在文件末尾追加标准输出信息

2>>文件名: 在文件末尾追加标准错误信息

nohup ./ruh.sh 1>std.log 2>error.log

这条命令的含义是将标准输出重定向到到std.log, 标准错误信息重定向到到error.log

如果我们只写标准输出的重定向,会怎样。

nohup ./run.sh 1>std.log, 可以看到标准输出被重定向大std.log, 同时标准错误也被重定向到std

如果我们只写标准错误的重定向,又会怎样。

nohup ./run.sh 2>error.log, 可以看到标准输出被重定到nohup.out, 同时标准错误被重定向到error.log

如果要将标准输出重定向到标准错误的日志中

nohup ./run.sh 2>error.log 1>&2

&2的含义是当前标准错误的重定向文件,那就是error.log