温馨提示×

nohup日志权限错误怎么办

小樊
61
2026-09-27 16:24:17
栏目: 编程语言

nohup 运行程序时如果报日志权限错误(常见如 nohup: failed to run command, permission denied, 或 cannot create nohup.out),通常是写日志文件没有权限导致的。下面按常见场景给你解决方案。


一、常见报错示例

nohup: ignoring input and appending output to ‘nohup.out’
nohup: failed to open ‘nohup.out’: Permission denied

或者:

bash: nohup.out: Permission denied

二、最常见原因 & 解决办法

✅ 1. 当前目录不能写(没有 nohup.out 权限)

nohup 默认会把输出写到当前目录的 nohup.out

解决方式:

方法 1:换到有写权限的目录

cd ~
nohup your_command &

方法 2:手动指定日志文件

nohup your_command > mylog.log 2>&1 &

确保:

touch mylog.log
chmod 644 mylog.log

✅ 2. 日志文件已存在且属于其他用户

比如 nohup.out 是 root 创建的,你用普通用户运行

解决:

ls -l nohup.out

如果是权限问题:

rm nohup.out
# 或
sudo chown 你的用户:你的用户 nohup.out

✅ 3. 没权限执行命令本身

nohup: failed to run command ‘xxx’: Permission denied

解决:

chmod +x your_command

或确认你用的是绝对路径:

nohup /usr/local/bin/your_command &

✅ 4. 用 sudo 但日志目录还是当前用户目录

sudo nohup your_command &

日志默认写 nohup.out,但当前目录可能 root 不能写

解决:

sudo nohup your_command > /var/log/myapp.log 2>&1 &

并确保:

sudo touch /var/log/myapp.log

✅ 5. 磁盘满了 / 文件系统只读

nohup: cannot create nohup.out: No space left on device

检查:

df -h
mount | grep ro

三、推荐的安全写法(通用)

nohup your_command > /home/youruser/app.log 2>&1 &

或后台稳定运行:

setsid your_command > /home/youruser/app.log 2>&1 &

四、快速排查清单

  • [ ] 当前目录是否有写权限
  • [ ] nohup.out / 日志文件是否存在且可写
  • [ ] 是否用了 sudo 但目录不对
  • [ ] 命令本身是否有执行权限
  • [ ] 磁盘空间和文件系统状态

如果你愿意,可以把完整报错信息 + 命令贴出来,我可以直接帮你定位是哪一类权限问题。

0 踩