当前位置: 首页> 娱乐> 影视 > 网页设计公司未来三年规划费用_对搜索引擎优化的认识_seo优化上首页_站长之家排名查询

网页设计公司未来三年规划费用_对搜索引擎优化的认识_seo优化上首页_站长之家排名查询

时间:2025/7/18 10:15:31来源:https://blog.csdn.net/weixin_42672685/article/details/146654824 浏览次数:0次
网页设计公司未来三年规划费用_对搜索引擎优化的认识_seo优化上首页_站长之家排名查询

环境:

ollama

问题描述:

ollama怎么一次停止所有在运行的模型?

解决方案:

1.编写一个脚本

脚本内容:

ollama () {if [[ $1 == "pull" ]] && [[ $# -eq 1 ]]thenecho "pulling all models..."ollama list | awk '$1 !~ /^registry.local/ {print $1}' | while read -r modeldoif [[ $model != "NAME" ]]thenecho "Pulling $model"ollama pull "$model"fidoneelif [[ $1 == "stop" ]] && [[ $# -eq 1 ]]thenecho "stopping all models..."ollama list | awk '$1 !~ /^registry.local/ {print $1}' | while read -r modeldoif [[ $model != "NAME" ]]thenecho "Stopping $model"ollama stop "$model"fidoneelsecommand ollama "$@"fi
}

这个脚本定义了一个名为 ollama 的 Bash 函数,用于增强 ollama 命令的功能。它扩展了 ollama 命令的行为,使其能够批量执行某些操作(如 pullstop),而不仅仅是对单个模型进行操作。

以下是脚本的详细解释:


1. 函数结构

ollama () {...
}
  • 定义了一个名为 ollama 的 Bash 函数。
  • 当你在终端中运行 ollama 命令时,会调用这个函数而不是直接调用系统中的 ollama 命令。

2. 检查第一个参数是否为 pull

if [[ $1 == "pull" ]] && [[ $# -eq 1 ]]
  • $1 是传递给函数的第一个参数。
  • $# 是传递给函数的参数总数。
  • 这段代码的意思是:如果第一个参数是 pull,并且只传入了一个参数(即没有其他额外参数)。
具体逻辑
echo "pulling all models..."
ollama list | awk '$1 !~ /^registry.local/ {print $1}' | while read -r model
doif [[ $model != "NAME" ]]thenecho "Pulling $model"ollama pull "$model"fi
done
  • ollama list:列出所有可用的模型。
  • awk '$1 !~ /^registry.local/ {print $1}'
    • 使用 awk 过滤输出,排除以 registry.local 开头的行(可能是本地注册表的模型)。
    • 只打印第一列(通常是模型名称)。
  • while read -r model:逐行读取过滤后的模型名称。
  • if [[ $model != "NAME" ]]:跳过标题行(通常是 NAME 列头)。
  • ollama pull "$model":对每个模型执行 pull 操作(从远程仓库拉取模型)。

总结:当运行 ollama pull 时,脚本会自动拉取所有可用的模型(排除本地注册表中的模型)。


3. 检查第一个参数是否为 stop

elif [[ $1 == "stop" ]] && [[ $# -eq 1 ]]
  • 如果第一个参数是 stop,并且只传入了一个参数。
具体逻辑
echo "stopping all models..."
ollama list | awk '$1 !~ /^registry.local/ {print $1}' | while read -r model
doif [[ $model != "NAME" ]]thenecho "Stopping $model"ollama stop "$model"fi
done
  • pull 的逻辑类似,只是将 pull 替换为 stop
  • ollama stop "$model":对每个模型执行 stop 操作(停止模型运行)。

总结:当运行 ollama stop 时,脚本会自动停止所有正在运行的模型(排除本地注册表中的模型)。


4. 默认行为

elsecommand ollama "$@"
fi
  • 如果参数不符合上述条件(例如传入了其他命令或参数),则直接调用系统中的 ollama 命令。
  • command ollama "$@"
    • command 强制调用系统中的原始 ollama 命令,而不是递归调用这个函数。
    • "$@" 将所有传递给函数的参数原样传递给系统命令。

5. 总结功能

这个脚本的主要功能是对 ollama 命令进行扩展,提供以下两个增强功能:

  1. 批量拉取模型

    • 运行 ollama pull 时,会自动拉取所有可用的模型(排除本地注册表中的模型)。
  2. 批量停止模型

    • 运行 ollama stop 时,会自动停止所有正在运行的模型(排除本地注册表中的模型)。

对于其他命令或参数,脚本会直接调用系统中的 ollama 命令。


6. 使用示例

批量拉取模型
ollama pull
  • 输出示例:
    pulling all models...
    Pulling model1
    Pulling model2
    Pulling model3
    
批量停止模型
ollama stop
  • 输出示例:
    stopping all models...
    Stopping model1
    Stopping model2
    Stopping model3
    
其他命令
ollama run model1
  • 直接调用系统中的 ollama 命令,执行 run model1

7. 注意事项

  • 依赖性:脚本依赖于 ollama list 命令的输出格式。如果 ollama list 的输出格式发生变化,脚本可能需要调整。
  • 权限问题:确保你有足够的权限运行 ollama 命令及其子命令。
  • 本地注册表过滤:脚本通过 awk 排除了以 registry.local 开头的模型。如果你的环境中没有这样的模型,可以忽略这部分逻辑。
关键字:网页设计公司未来三年规划费用_对搜索引擎优化的认识_seo优化上首页_站长之家排名查询

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: