nohup 日志不生成通常不是命令本身的问题,而是输出目标、路径权限或程序行为导致的。下面按最常见原因逐一排查,并给出对应解决办法。
✅ 90% 的情况都是下面之一
nohup command &
默认行为:
nohup.outnohup.out⚠️ 如果当前目录不可写,则:
$HOME/nohup.outpwd
touch nohup.out
如果 touch 失败,说明目录不可写。
✅ 解决:
cd ~
nohup your_command &
或指定日志路径:
nohup your_command > ~/app.log 2>&1 &
ps -ef | grep your_command
或:
jobs
如果进程不存在,日志当然不会生成。
✅ 解决:
your_command
例如:
✅ 验证:
your_command | cat
如果没输出,说明程序本身不写 stdout。
✅ 解决:
❌ 错误示例:
nohup command > log.txt
# 没加 &
✅ 正确写法:
nohup command > log.txt 2>&1 &
Linux 下:
nohup.out✅ 验证:
lsof -p PID | grep nohup
✅ 解决:
这些环境:
✅ 解决:
nohup /opt/app/bin/start.sh > /var/log/app.log 2>&1 &
最稳妥:
nohup your_command > /var/log/app.log 2>&1 &
查看:
tail -f /var/log/app.log
你可以逐条对照:
2>&1?你可以贴出:
nohup 命令我可以精确告诉你是哪一条原因。