温馨提示×

怎样找nohup日志路径

小樊
56
2026-09-12 10:06:32
栏目: 编程语言

在使用 nohup 命令运行程序时,如果不显式指定输出重定向,日志默认会写入当前目录下的 nohup.out 文件。如果你找不到日志,或者想确认某个 nohup 进程的日志路径,可以通过以下几种方式查找:


一、默认情况

nohup your_command &
  • 日志默认输出到:当前工作目录下的 nohup.out
  • 如果当前目录不可写,会写到 $HOME/nohup.out

二、显式指定日志路径(推荐)

nohup your_command > /path/to/log.log 2>&1 &
  • 日志就在你指定的 /path/to/log.log

三、通过进程查找日志路径(已运行中的进程)

1. 查看进程 ID

ps -ef | grep your_command

或

pgrep -af your_command

2. 查看该进程打开的文件(含日志)

ls -l /proc/<PID>/fd

示例输出:

1 -> /path/to/log.log
2 -> /path/to/log.log
  • 1 是标准输出(stdout)
  • 2 是标准错误(stderr)

四、使用 lsof 查找

lsof -p <PID> | grep -E 'txt|log|out'

或者直接找打开的日志文件:

lsof -p <PID> | grep REG

五、通过 cat /proc/<PID>/cmdline 看启动命令

cat /proc/<PID>/cmdline | tr '\0' ' '

可以看到是否重定向了日志路径。


六、常见排查建议

  • 确认你是否 cd 到了某个目录后启动的 nohup
  • 用 pwd 确认启动时的目录
  • 搜索可能的日志:
find ~ -name nohup.out 2>/dev/null
find / -name nohup.out 2>/dev/null

如果你愿意,可以把你的 启动命令 或 ps 输出 发出来,我可以帮你精确判断日志在哪。

0 踩