nohup 日志的记录内容
核心说明 nohup 本身不生成专用日志格式,它只是保证进程忽略 SIGHUP 信号并在后台继续运行;所谓“nohup 日志”,实质是被它接管并写入的进程输出流。默认写入当前工作目录的 nohup.out(不可写时写入 $HOME/nohup.out),文件采用“追加”模式。若显式做了重定向,则写入你指定的文件。也就是说,日志里有什么,取决于被运行程序的 stdout/stderr 输出了什么。
默认写入的内容
常见重定向与日志效果 下表展示了不同写法下日志里会包含的内容与去向(“包含”表示写入该文件,“丢弃”表示不记录):
| 命令示例 | 写入内容 | 说明 |
|---|---|---|
| nohup yourcmd & | stdout → nohup.out;stderr → nohup.out | 默认追加到当前目录的 nohup.out(不可写时用 $HOME/nohup.out) |
| nohup yourcmd > app.log 2>&1 & | stdout+stderr → app.log | 将标准错误合并到标准输出,统一写入 app.log |
| nohup yourcmd > out.log 2> err.log & | stdout → out.log;stderr → err.log | 标准输出与错误分别记录 |
| nohup yourcmd > /dev/null 2>&1 & | 无日志 | 丢弃所有输出(常用于只关心进程存活而不关心输出) |
| 说明:重定向中的 > 为覆盖,>> 为追加;2> 仅重定向标准错误,2>&1 将标准错误重定向到标准输出。 |
实用查看与排查命令