温馨提示×

nohup日志权限不足怎么办

小樊
54
2026-07-21 17:20:38
栏目: 编程语言

nohup 日志权限不足,通常是当前用户对日志文件或所在目录没有写权限。可以按下面思路排查和解决:


一、常见原因

  1. 日志文件已存在,但属主不是当前用户
  2. 日志目录没有写权限
  3. sudo 启动,但重定向发生在当前用户
  4. 磁盘或 inode 满了(较少见)

二、快速排查

# 查看日志文件权限
ls -l nohup.out

# 查看目录权限
ls -ld .

三、解决方案(按推荐顺序)

✅ 方案 1:修改日志文件权限(最常见)

chmod 644 nohup.out
chown $USER:$USER nohup.out

✅ 方案 2:换一个你有写权限的目录

nohup java -jar app.jar > /home/youruser/app.log 2>&1 &

或:

mkdir ~/logs
nohup ./app > ~/logs/app.log 2>&1 &

✅ 方案 3:使用 sudo 时正确重定向(容易踩坑)

❌ 错误写法:

sudo nohup ./app > nohup.out

✅ 正确写法:

sudo sh -c 'nohup ./app > /var/log/app.log 2>&1 &'

或:

sudo bash -c "nohup ./app > /var/log/app.log 2>&1 &"

✅ 方案 4:删除旧的 nohup.out(不重要的话)

rm -f nohup.out
nohup ./app &

✅ 方案 5:指定日志路径(推荐生产环境)

nohup ./app > logs/app-$(date +%F).log 2>&1 &

四、最佳实践(建议)

  • 不要依赖默认的 nohup.out
  • 日志统一放到:
    /var/log/your_app/
    或
    ~/logs/
    
  • 2>&1 合并标准错误
  • 定期 rotate 日志

五、如果你愿意

可以把具体报错信息你执行的命令贴出来,我可以帮你精确分析是哪一步权限不足。

0