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
nohup 默认会把输出写到当前目录的 nohup.out
解决方式:
cd ~
nohup your_command &
nohup your_command > mylog.log 2>&1 &
确保:
touch mylog.log
chmod 644 mylog.log
比如 nohup.out 是 root 创建的,你用普通用户运行
解决:
ls -l nohup.out
如果是权限问题:
rm nohup.out
# 或
sudo chown 你的用户:你的用户 nohup.out
nohup: failed to run command ‘xxx’: Permission denied
解决:
chmod +x your_command
或确认你用的是绝对路径:
nohup /usr/local/bin/your_command &
sudo nohup your_command &
日志默认写 nohup.out,但当前目录可能 root 不能写
解决:
sudo nohup your_command > /var/log/myapp.log 2>&1 &
并确保:
sudo touch /var/log/myapp.log
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 &
如果你愿意,可以把完整报错信息 + 命令贴出来,我可以直接帮你定位是哪一类权限问题。