nohup 默认会把标准输出和标准错误都写到当前目录下的 nohup.out,但这个路径是可以改的。常见改法如下:
nohup your_command > /path/to/log.log 2>&1 &
说明:
> /path/to/log.log:标准输出写到指定文件2>&1:标准错误也合并到同一个文件&:后台运行✅ 这是最标准、最常用的方法
nohup your_command > /path/to/out.log 2> /path/to/err.log &
适合想分开查看正常日志和错误日志的场景。
nohup your_command >> /path/to/log.log 2>&1 &
>> 表示追加,不会清空原日志。
默认路径是:
./nohup.out
或者(某些 shell / 系统):
$HOME/nohup.out
⚠️ nohup 本身没有参数可以“直接改路径”,只能通过重定向实现。
mkdir -p /data/logs
nohup java -jar app.jar > /data/logs/app.log 2>&1 &
rotatelogs(Apache 工具)nohup your_command | rotatelogs /data/logs/app.%Y%m%d.log 86400 &
logrotate 管理日志(生产环境推荐)❌ 这样是无效的:
nohup your_command --log /path/to/log.log
除非程序本身支持 --log 参数,否则 nohup 不会识别。
nohup 改日志路径 = shell 重定向,不是 nohup 的参数
如果你愿意,可以把你的具体命令贴出来,我可以直接帮你改成最优写法。