nohup 本身不会写日志、也不控制时间,日志里的“时间不对”通常是下面几种原因之一,对应改法也不同:
最常见情况:程序打日志用的是 UTC,你以为是本地时间。
date
date -u
再看日志里的时间跟哪个一致。
运行前指定时区:
TZ=Asia/Shanghai nohup your_app > app.log 2>&1 &
或写进启动脚本:
export TZ=Asia/Shanghai
nohup your_app > app.log 2>&1 &
如果是 Docker:
docker exec -it 容器名 date
容器时间错,宿主机对 → 挂载时区:
-v /etc/localtime:/etc/localtime:ro
-v /etc/timezone:/etc/timezone:ro
比如:
SimpleDateFormat 没设时区logging 用了 UTCnew Date() 受 TZ 影响✅ 这种 改 nohup 没用,要改代码或框架配置。
示例(Python):
logging.basicConfig(
format='%(asctime)s %(message)s',
datefmt='%Y-%m-%d %H:%M:%S'
)
那不是时间错,是:
解决:
python -u app.py
或
stdbuf -oL nohup app > log 2>&1 &
ls -l nohup.out
确认你看的是 当前目录的,不是别的。
如果你愿意,把下面信息发我,我可以直接告诉你改哪:
date 和 date -u 输出