温馨提示×

nohup日志报错怎么查

小樊
42
2026-09-21 17:52:59
栏目: 编程语言

nohup 本身不会直接报错,它只是让程序在后台运行、忽略挂断信号,并把输出默认写到 nohup.out 或你重定向的文件里。
所谓“nohup日志报错”,通常是 程序运行出错,被写进了日志文件。下面按常见场景说明怎么查。


一、先确认日志在哪

1️⃣ 默认情况

nohup command &

日志在:

nohup.out

(在当前工作目录)

2️⃣ 手动重定向(更常见)

nohup command > app.log 2>&1 &

日志在:

app.log

二、查看日志内容

实时查看(推荐)

tail -f app.log
# 或
tail -f nohup.out

看最近 100 行

tail -n 100 app.log

搜索报错关键字

grep -i error app.log
grep -i exception app.log
grep -i "failed" app.log

三、常见“nohup日志报错”原因

1️⃣ 程序自身报错

例如:

  • Java:Exception in thread "main"
  • Python:Traceback (most recent call last)
  • Shell:command not found

✅ 解决:看具体报错行,不是 nohup 的问题


2️⃣ 权限问题

Permission denied

✅ 检查:

ls -l app.log
whoami

3️⃣ 端口被占用

Address already in use

✅ 查端口:

netstat -tunlp | grep 端口号

4️⃣ 环境变量的坑(非常常见)

nohup 启动的环境可能没有 PATH / JAVA_HOME

nohup: failed to run command ‘java’: No such file or directory

✅ 解决:

nohup /usr/local/jdk/bin/java -jar app.jar > app.log 2>&1 &

或在脚本里 source ~/.bashrc


5️⃣ 磁盘满了

df -h

日志写不进去也会“看起来没反应”


四、确认程序是否还在跑

ps -ef | grep 程序名

或

jobs -l

五、一个标准、安全的启动方式(推荐)

nohup ./start.sh > app.log 2>&1 &

start.sh 里:

#!/bin/bash
source ~/.bashrc
cd /path/to/app
java -jar app.jar

六、如果你愿意,我可以直接帮你分析

你可以贴出:

  • 你用的命令
  • 日志内容(报错那几行)
  • 程序类型(Java / Python / Shell)

我可以直接告诉你是哪一步出的问题 + 怎么改。

0 踩