温馨提示×

nohup日志权限错误怎么解

小樊
39
2026-10-24 02:03:41
栏目: 编程语言

nohup 日志权限错误,通常表现是类似:

nohup: failed to run command ‘xxx’: Permission denied
nohup: ignoring input and appending output to ‘nohup.out’
nohup.out: Permission denied

或者启动后无法写 nohup.out。下面按常见原因 + 解决办法给你说明。


一、最常见原因 & 解决方法

1️⃣ 当前目录没有写权限(最常见)

nohup 默认会把输出写到当前目录的 nohup.out,如果你没有当前目录写权限就会报错。

解决方法:

✅ 换到有写权限的目录:

cd ~
nohup your_command &

✅ 或者手动指定日志路径:

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

2️⃣ nohup.out 已存在,但属主不是你

比如:

  • 之前用 root 跑过
  • 现在用普通用户跑

检查:

ls -l nohup.out

解决:

rm nohup.out
# 或
sudo chown $USER:$USER nohup.out

3️⃣ 磁盘或目录是只读的

mount | grep "on / "

如果看到 ro(read-only),需要重新挂载:

sudo mount -o remount,rw /

4️⃣ 程序本身没有执行权限

不是日志问题,但常被误认为是 nohup 错误:

chmod +x your_script.sh

5️⃣ 用 sudo 但日志路径不对

例如:

sudo nohup ./app > nohup.out &

此时 nohup.out 属于 root,但你后续用户访问会失败。

✅ 推荐写法:

sudo nohup ./app > /var/log/app.log 2>&1 &

二、推荐的安全写法(避免权限坑)

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

或后台稳定运行:

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

三、快速自查清单 ✅

  • [ ] 当前目录可写?
  • [ ] nohup.out 属主是你?
  • [ ] 磁盘不是只读?
  • [ ] 脚本有执行权限?
  • [ ] 是否用了 sudo 导致权限混乱?

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

0 踩