#!/usr/bin/env bash set -euo pipefail shopt -s nullglob get_prop() { local info="$1" local key="$2" awk -F= -v k="$key" '$1==k {print $2}' "$info" } for info in state/vms/*/info; do id="$(get_prop "$info" "id")" name="$(get_prop "$info" "name")" created_at="$(get_prop "$info" "created_at")" guest_ip="$(get_prop "$info" "guest_ip")" pid="$(get_prop "$info" "pid")" tap="$(get_prop "$info" "tap")" api_sock="$(get_prop "$info" "api_sock")" if [[ -z "$pid" || -z "$api_sock" ]]; then continue fi if ps -p "$pid" -o comm=,args= 2>/dev/null | rg -q "firecracker.*--api-sock $api_sock"; then printf 'id=%s name=%s created_at=%s guest_ip=%s pid=%s tap=%s\n' \ "$id" "$name" "$created_at" "$guest_ip" "$pid" "$tap" fi done