nohup 运行程序时,常见“日志权限错误”通常表现为:
nohup: ignoring input and appending output to 'nohup.out'nohup: failed to run command ‘xxx’: Permission deniednohup.out: Permission denied>> app.log 报错)下面按最常见原因 + 对应解决办法说明。
你在某个目录下执行:
nohup your_command &
默认会把输出写到当前目录的 nohup.out,但你对当前目录没有写权限。
✅ 指定一个你有权限的日志路径:
nohup your_command > /home/youruser/app.log 2>&1 &
或放到 /tmp:
nohup your_command > /tmp/app.log 2>&1 &
bash: app.log: Permission denied
app.log 是 root 创建的查看权限:
ls -l app.log
修改属主:
sudo chown youruser:youruser app.log
或重新建日志:
rm app.log
nohup your_command > app.log 2>&1 &
sudo nohup python app.py > /home/user/app.log 2>&1 &
→ root 写不进 user 目录,或反过来
统一身份:
sudo nohup python app.py > /root/app.log 2>&1 &
或
sudo touch /var/log/app.log
sudo chmod 666 /var/log/app.log
sudo nohup python app.py >> /var/log/app.log 2>&1 &
mount | grep "on / "
看到 ro 就是只读。
sudo mount -o remount,rw /
getenforce
如果是 Enforcing,可能是 SELinux 拦了写日志。
sudo setenforce 0
如果好了,说明是 SELinux 问题(再配置策略或改日志目录)。
nohup your_command \
> /home/youruser/logs/app_$(date +%F).log \
2>&1 &
并提前建好目录:
mkdir -p ~/logs
chmod 700 ~/logs
ls -l 日志文件whoamipwd/tmp 测试是否能写如果你愿意,可以把完整报错信息 + 执行命令贴出来,我可以直接帮你定位是哪一类权限问题。