From b34e6836f3ffd4f77f1a978d64bfe567ce5ef80d Mon Sep 17 00:00:00 2001 From: joy Date: Fri, 31 Oct 2025 16:10:17 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20scripts/dcgm=5Fdiag=5Fbg?= =?UTF-8?q?=5Flog.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit aaa --- scripts/dcgm_diag_bg_log.sh | 44 +++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 scripts/dcgm_diag_bg_log.sh diff --git a/scripts/dcgm_diag_bg_log.sh b/scripts/dcgm_diag_bg_log.sh new file mode 100644 index 0000000..f1c5419 --- /dev/null +++ b/scripts/dcgm_diag_bg_log.sh @@ -0,0 +1,44 @@ +#!/bin/bash +set -euo pipefail + +# 定义日志文件路径 +LOG_FILE="/opt/check/dcgm-logs.txt" +# 定义日志目录(从日志文件路径中提取) +LOG_DIR=$(dirname "$LOG_FILE") + + +# 检查是否已有 dcgmi diag 进程在运行 +if pgrep -f 'dcgmi diag' > /dev/null; then + echo "错误:已有 dcgmi diag 进程正在运行,无法重复执行。" >&2 + echo "提示:可通过 'ps -ef | grep dcgmi diag' 查看进程详情,或使用 'pkill -f dcgmi diag' 终止。" >&2 + exit 1 +fi + + +# 检查并创建日志目录(若不存在) +if [ ! -d "$LOG_DIR" ]; then + echo "日志目录 $LOG_DIR 不存在,正在创建..." + mkdir -p "$LOG_DIR" # -p 确保父目录存在,避免多级目录创建失败 + echo "日志目录 $LOG_DIR 创建成功" +fi + + +# 执行 dcgmi 诊断命令,后台运行并将所有输出(标准输出+错误)重定向到日志文件 +echo "正在启动 dcgmi diag -r 2 后台任务,结果将保存到 $LOG_FILE..." +dcgmi diag -r 2 > "$LOG_FILE" 2>&1 & + + +# 获取后台进程的 PID(方便后续查看/管理) +DCGM_PID=$! + + +# 输出任务信息 +echo "======================================" +echo "任务已后台启动" +echo "进程 ID (PID): $DCGM_PID" +echo "日志文件路径: $LOG_FILE" +echo "--------------------------------------" +echo "查看任务状态:ps -p $DCGM_PID" +echo "查看实时日志:tail -f $LOG_FILE" +echo "终止任务:kill $DCGM_PID" +echo "======================================"