分析 nohup 日志中的错误,通常可以按下面几个步骤进行。
nohup 默认会把输出重定向到当前目录的:
nohup.out
如果你在启动时有显式重定向,例如:
nohup python app.py > app.log 2>&1 &
那么日志就在 app.log。
查看方式:
ls -l nohup.out
tail -n 200 nohup.out
tail -n 100 nohup.out
grep -i error nohup.out
grep -i exception nohup.out
grep -i traceback nohup.out
ps -ef | grep 你的程序名
如果进程不在,但日志最后有报错,基本可以确认是启动失败或运行中崩溃。
日志示例:
nohup: failed to run command ‘python3’: No such file or directory
分析:
nohup /usr/bin/python3 app.py > app.log 2>&1 &
Permission denied
分析:
chmod +x app.py
ls -l 目标目录
Address already in use
分析:
netstat -tunlp | grep 端口号
或
lsof -i:端口号
Traceback (most recent call last):
File "app.py", line 10, in <module>
...
分析:
现象:
解决:
nohup bash -c 'source ~/.bashrc && python app.py' > app.log 2>&1 &
nohup python app.py > app.log 2>&1 &
说明:
>:标准输出2>&1:错误输出也写入日志&:后台运行如果是长期服务,建议使用:
systemdsupervisorscreen / tmux例如 systemd 可直接查看:
journalctl -u your_service.service -n 200
如果你愿意,可以把 nohup 日志的最后 30–50 行 或 启动命令 发出来,我可以帮你具体分析是哪一类错误。