在 CentOS(以及大多数 Linux) 中,nohup 默认会把日志输出到当前目录下的 nohup.out,但你可以通过 重定向 自定义日志位置。
nohup command > app.log 2>&1 &
含义:
> app.log:标准输出重定向到 app.log2>&1:标准错误也重定向到标准输出(即同一个文件)&:后台运行✅ 最常用方式
nohup command > stdout.log 2> stderr.log &
stdout.log:正常输出stderr.log:错误输出nohup command >> app.log 2>&1 &
使用
>>而不是>,避免覆盖旧日志
nohup /opt/app/start.sh > /var/log/app.log 2>&1 &
✅ 推荐生产环境使用绝对路径
nohup command > /dev/null 2>&1 &
或只保留错误日志:
nohup command > /dev/null 2> error.log &
jobs # 当前 shell
ps -ef | grep command
❌ 错误:
nohup command & > app.log
✅ 正确:
nohup command > app.log 2>&1 &
nohup java -jar app.jar > /var/log/app/app.log 2>&1 &
如果你愿意,可以告诉我:
我可以给你更合适的方案(如 logrotate 或 cronolog)。