在 Debian 里用 nohup 启动程序时,日志默认去哪、怎么找,分几种常见情况:
如果你是这样运行的:
nohup your_command &
stdout)和错误输出(stderr)默认会写入当前目录的:nohup.out
查找方式:
ls -l nohup.out
cat nohup.out
tail -f nohup.out
如果当前目录不可写,nohup.out 会写到:
~/nohup.out
很多人会显式指定日志文件:
nohup your_command > app.log 2>&1 &
或者:
nohup your_command >> /var/log/app.log 2>&1 &
查找方式就是看你写的路径:
tail -f /var/log/app.log
ps aux | grep your_command
拿到 PID 后:
ls -l /proc/<PID>/fd
你会看到类似:
1 -> /home/user/nohup.out
那就是日志文件。
lsof -p <PID>
或:
lsof | grep nohup.out
可能原因:
> /dev/null)可以用:
dmesg | tail
journalctl -xe
看系统层错误(尤其服务类程序)
nohup your_command >> /var/log/your_app.log 2>&1 &
再用:
tail -f /var/log/your_app.log
如果你愿意,可以告诉我:
nohup 启动命令我可以帮你精确指出日志在哪。