nohup 日志的权限问题,通常指的是 执行 nohup 后生成的 nohup.out 文件没有写权限,或无法创建、无法写入。下面按常见场景给你一个完整排查和解决思路。
nohup.out 没有写权限nohup: failed to run command `xxx': Permission denied
或
nohup: ignoring input and redirecting stderr to stdout
nohup.out: Permission denied
nohup.out 已存在,且权限不足ls -ld .
如果看到类似:
drwxr-xr-x root root .
且你不是 root → 不能写
✅ 解决:
cd ~
nohup your_command &
nohup.out 是否已存在ls -l nohup.out
如果看到:
-rw-r--r-- root root nohup.out
而你不是 root → 无法写入
✅ 解决方式(任选):
rm nohup.out
nohup your_command &
nohup your_command > my.log 2>&1 &
nohup ./test.sh &
如果:
ls -l test.sh
# -rw-r--r--
✅ 解决:
chmod +x test.sh
nohup ./test.sh &
nohup ./app.sh > app.log 2>&1 &
或:
nohup ./app.sh > app.log 2>&1 </dev/null &
✅ 优点:
nohup.out如果你用:
sudo nohup ./app.sh &
但平时用普通用户登录:
ls -l nohup.out
# -rw-r--r-- root root
✅ 解决:
sudo chown $USER:$USER nohup.out
或:
sudo rm nohup.out
如果你是用 nohup 启动 长期服务,更推荐用 systemd,不存在这个权限问题:
[Service]
User=appuser
ExecStart=/opt/app/start.sh
StandardOutput=append:/var/log/app.log
StandardError=append:/var/log/app.log
nohup.out 是否存在且权限正确x 权限如果你愿意,可以把 完整报错信息 / 启动命令 / ls -l nohup.out 输出贴出来,我可以帮你精确定位是哪一类权限问题。