You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否创建读取时自动执行命令生成输出的文件?

实现读取文件时自动执行命令的方案

核心思路:使用POSIX命名管道(FIFO)

命名管道允许进程通过文件路径完成通信,当有进程读取管道时,写入端的命令会被触发执行,完美匹配需求——仅需一个轻量后台循环(无读取请求时处于休眠状态),无需常驻服务。

操作步骤

  1. 创建命名管道
    执行命令创建指定路径的FIFO:

    mkfifo /tmp/not_running_pods
    
  2. 启动后台触发逻辑
    运行以下命令,它会在后台等待管道被读取,每次读取时自动执行目标kubectl命令并将结果输出到管道:

    while true; do
      kubectl get pods -o wide | grep -v Running > /tmp/not_running_pods
    done &
    

    这个循环进程非常轻量,无读取请求时处于阻塞休眠状态,不会占用CPU资源。

  3. 验证效果
    直接用cat读取管道,即可实时获取非Running状态的Pod信息:

    cat /tmp/not_running_pods
    

兼容性说明

该方案完全兼容Linux(bash/zsh)和macOS(bash/zsh),所有命令均为POSIX标准工具,无需额外安装依赖。

清理方法

如果不再使用,可执行以下命令终止后台进程并删除管道:

# 终止后台循环进程
pkill -f "while true; do kubectl get pods"
# 删除命名管道
rm /tmp/not_running_pods

内容的提问来源于stack exchange,提问作者user7187237

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.25 06:57:17