nohup 本身不会主动去改日志文件权限,所谓“nohup 日志权限问题”通常是下面几种情况之一。你可以对照看看是哪一种,再对症处理。
nohup: failed to open 'nohup.out': Permission deniednohup.out 没有写权限nohup python app.py &
默认会写 ./nohup.out
解决:
# 换到有写权限的目录
cd /var/log/myapp
nohup python app.py > app.log 2>&1 &
或显式指定日志:
nohup python app.py > /home/user/app.log 2>&1 &
ls -l nohup.out
如果是 root 创建的,你用普通用户就写不进去
解决:
sudo chown $USER:$USER nohup.out
# 或
sudo rm nohup.out
sudo nohup python app.py &
日志是 root 的
解决方式(推荐):
sudo chmod 644 nohup.out
或更规范一点:
sudo -u www nohup python app.py > /var/log/app.log 2>&1 &
cron 环境:
$HOME推荐写法:
* * * * * cd /path && nohup ./app > /path/app.log 2>&1 &
并确保:
chmod 755 /path
touch /path/app.log
chown cronuser:cronuser /path/app.log
✅ 永远显式指定日志路径
nohup your_command > /path/to/logfile.log 2>&1 &
✅ 日志目录提前建好并赋权
mkdir -p /var/log/myapp
chown -R appuser:appuser /var/log/myapp
✅ 不要依赖 nohup.out
你可以贴一下:
我可以直接给你一条可复制的命令。