added standalone run scripts for all tests and experiments

This commit is contained in:
2026-05-28 23:17:25 +03:00
parent 2f79582210
commit a54a29e486
4 changed files with 478 additions and 145 deletions
+44
View File
@@ -0,0 +1,44 @@
#!/usr/bin/env bash
set -euo pipefail
LC_ALL=C
ROOT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
RUN_ID=$(date +"%Y%m%d_%H%M%S")
OUT_DIR="$ROOT_DIR/runs/$RUN_ID"
mkdir -p "$OUT_DIR"
LOG_FILE="$OUT_DIR/activity.log"
log() {
echo "[$(date -Iseconds)] $*" | tee -a "$LOG_FILE"
}
log "Compiling fork_bomb"
gcc -O2 -o "$ROOT_DIR/fork_bomb" "$ROOT_DIR/fork_bomb.c"
ALLOW_DANGEROUS=${ALLOW_DANGEROUS:-0}
FORK_BOMB_SECONDS=${FORK_BOMB_SECONDS:-5}
PROC_SAMPLE_STEP=${PROC_SAMPLE_STEP:-50}
FORK_BOMB_CSV="$OUT_DIR/fork_bomb.csv"
if [ "$ALLOW_DANGEROUS" -eq 1 ]; then
log "Starting fork_bomb (C-side logging)"
if command -v timeout >/dev/null 2>&1; then
timeout "$FORK_BOMB_SECONDS" sh -c "cd '$ROOT_DIR' && FORK_BOMB_CSV='$FORK_BOMB_CSV' PROC_SAMPLE_STEP='$PROC_SAMPLE_STEP' ./fork_bomb" || true
else
(cd "$ROOT_DIR" && FORK_BOMB_CSV="$FORK_BOMB_CSV" PROC_SAMPLE_STEP="$PROC_SAMPLE_STEP" ./fork_bomb) &
FB_PID=$!
sleep "$FORK_BOMB_SECONDS" || true
kill -TERM "-$FB_PID" 2>/dev/null || true
sleep 2
kill -KILL "-$FB_PID" 2>/dev/null || true
fi
pkill -f "./fork_bomb" 2>/dev/null || true
else
log "Skipping fork_bomb (set ALLOW_DANGEROUS=1 to run)"
echo "timestamp,elapsed_s,load1,load5,load15,mem_total_kb,mem_available_kb,mem_used_kb,proc_count,thread_count_total,pid,cpu_pct,sys_cpu_pct,rss_kb,vsz_kb,stack_kb,heap_kb,proc_threads" > "$FORK_BOMB_CSV"
fi
log "Experiment finished"
log "Run directory: $OUT_DIR"