加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
monitor_start.sh 2.07 KB
一键复制 编辑 原始数据 按行查看 历史
tyutzhangyukang 提交于 2023-06-19 05:28 . 20230618
#!/bin/bash
PROGRAM_NAME="gpu-warning.py"
SCRIPT_B_NAME="gpu_monitor.sh"
script_dir=$(dirname "$(readlink -f "$0")")
GROUP_NAME=$1
# 检查参数数量
#
if [ $# -lt 1 ]; then
echo "参数不足!请输入所属组 ,可选项 NLPL NLPH CV"
echo "用法: $0 <参数>"
exit 1
fi
case "$GROUP_NAME" in
*NLPL*|*NLPH*|*CV*)
echo "变量包含指定字符串,继续执行"
# 在这里继续执行你的代码
echo "$GROUP_NAME" > ${script_dir}"/"temp.txt
;;
*)
echo "变量不包含(NLPL NLPH CV),退出程序"
exit 1
;;
esac
# 检查是否安装了指定的Python包
check_package() {
package_name=$1
python3 -c "import pkgutil; exit(0 if pkgutil.find_loader('$package_name') else 1)" >/dev/null 2>&1
if [ $? -eq 0 ]; then
echo "Python包 $package_name 已安装"
return 0
else
echo "Python包 $package_name 未安装"
return 1
fi
}
# 要检查的Python包列表
packages=("requests" "subprocess" "json")
# 循环检查每个包
for package in "${packages[@]}"; do
check_package "$package"
if [ $? -ne 0 ]; then
echo "缺少必要的Python包,无法继续执行"
exit 1
fi
done
# 在这里继续执行你的代码
echo "所有必要的Python包已安装,继续执行"
HOST_NAME=$(hostname)
# 判断主机名中是否包含"master"字符
if [[ $HOST_NAME == *"master"* ]]; then
echo "主机名包含'master'字符,是master节点,继续执行监控任务"
# 在这里添加继续执行的命令
while true; do
# 检查Python程序是否在运行中
if ! pgrep -f "$PROGRAM_NAME"; then
echo "gpu-warning.py 程序已被kill,重新启动..."
python3 ${script_dir}"/""$PROGRAM_NAME" "$HOST_NAME" "$GROUP_NAME" 2>&1 &
fi
# 检查B脚本是否在运行中
if ! pgrep -f "$SCRIPT_B_NAME"; then
echo "gpu_monitro.sh 脚本已被kill,重新启动..."
bash ${script_dir}"/""$SCRIPT_B_NAME" 2>&1 &
fi
sleep 60
done
else
echo "主机名不包含'master'字符,退出监控程序"
exit 1
fi
Loading...
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化