博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
# ============================================================
# 一次性配置(只做一次,永久生效)
# ============================================================

# 编辑本地 SSH 配置文件,加入心跳设置
nano ~/.ssh/config
# 写入以下内容:
   Host *
       ServerAliveInterval 30      # 每 30 秒发一次心跳
       ServerAliveCountMax 6       # 连续 6 次无响应才断开
       TCPKeepAlive yes            # 同时启用 TCP 层保活


# ============================================================
# 每次跑任务(按顺序执行)
# ============================================================

# --- 本地终端 ---

# 1. 开启防休眠,12 小时后自动释放
caffeinate -i -s -t 43200 & disown
# -i          防止空闲休眠
# -s          防止系统休眠(仅插电生效)
# -t 43200    12 小时后自动退出
# &           后台运行
# disown      脱离 shell,关闭终端也不影响

# 2. 验证断言生效
pmset -g assertions | grep PreventUserIdleSystemSleep
# 应显示 PreventUserIdleSystemSleep 1

# 3. 确认插电
pmset -g batt | head -n 1
# 应显示 'AC Power'

# 4. SSH 登录服务器
ssh user@202.197.33.142

# --- 服务器端(SSH 登录后)---

# 5. 用 nohup 启动任务,输出写入日志
nohup python test_improved.py --cfg h36m \
  --ckpt results_20251216_163132/h36m/models/0500.p --gpu_index 0 \
  > train.log 2>&1 &
# nohup       SSH 断开后进程不被杀
# > train.log 标准输出写入 train.log
# 2>&1        标准错误也写入同一文件
# &           后台运行

# 6. 实时查看进度
tail -f train.log
# -f 持续追踪日志新增内容,Ctrl+C 退出追踪(不影响任务)


# ============================================================
# 任务结束后
# ============================================================

# --- 本地终端 ---

# 7. 关闭防休眠(如果还没到 12 小时自动关闭)
pkill caffeinate
# 按名字终止所有 caffeinate 进程

# 8. 验证已关闭
pgrep -fl caffeinate
# 无输出表示已关干净,Mac 恢复正常的空闲休眠策略