温馨提示×

nohup日志时间不对咋调

小樊
39
2026-09-27 16:29:16
栏目: 编程语言

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

三、程序自己写时间(不是系统时间)

比如:

  • Java:SimpleDateFormat 没设时区
  • Python:logging 用了 UTC
  • Node:new Date() 受 TZ 影响

✅ 这种 改 nohup 没用,要改代码或框架配置。

示例(Python):

logging.basicConfig(
    format='%(asctime)s %(message)s',
    datefmt='%Y-%m-%d %H:%M:%S'
)

四、nohup.out 时间“不动”

那不是时间错,是:

  • 程序没输出
  • 输出被缓冲(Python 常见)

解决:

python -u app.py

或

stdbuf -oL nohup app > log 2>&1 &

五、你只是看错文件

ls -l nohup.out

确认你看的是 当前目录的,不是别的。


如果你愿意,把下面信息发我,我可以直接告诉你改哪:

  1. 什么程序(Java / Python / Shell)
  2. 日志示例一行
  3. date 和 date -u 输出

0 踩