# ============================================================
# 一次性配置(只做一次,永久生效)
# ============================================================
# 编辑本地 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 恢复正常的空闲休眠策略