#!/bin/sh # knelerf-toolbox — front door to the on-demand perf toolbox LXC on this node. # usage: knelperf-toolbox run '' (starts the LXC if stopped, runs, leaves it up) # knelperf-toolbox shell (interactive) # knelperf-toolbox start|stop|status # The LXC (vmid 950) is STOPPED at rest — zero footprint; stop it when done. # Docs: https://community.turnsys.com/t/328 VMID=${KNELPERF_TOOLBOX_VMID:-950} ensure_running() { pct status "$VMID" 2>/dev/null | grep -q running && return 0 pct start "$VMID" i=0 until pct exec "$VMID" -- true 2>/dev/null; do i=$((i + 1)); [ $i -gt 45 ] && { echo "boot timeout" >&2; return 1; } sleep 2 done } case "${1:-help}" in run) shift; ensure_running && pct exec "$VMID" -- sh -c "$*" ;; shell) ensure_running && pct enter "$VMID" ;; start) ensure_running ;; stop) pct shutdown "$VMID" --timeout 60 2>/dev/null || pct stop "$VMID" ;; status) pct status "$VMID" 2>/dev/null || echo "vmid $VMID not present" ;; *) sed -n '2,6p' "$0" | sed 's/^# \?//' ;; esac