netvm-reaper.sh: reap stale headless browsers
This commit is contained in:
Executable
+24
@@ -0,0 +1,24 @@
|
||||
#!/bin/bash
|
||||
# Reap stale headless browsers (no CDP activity for >4h)
|
||||
# Run via cron: */30 * * * * ~/Projects/NetVM/bin/netvm-reaper.sh
|
||||
for pid in $(pgrep -f "chromium.*--headless" 2>/dev/null); do
|
||||
# Check if CDP port is still responding (find port from cmdline)
|
||||
port=$(tr '\0' ' ' < /proc/$pid/cmdline 2>/dev/null | grep -oP 'remote-debugging-port=\K\d+' | head -1)
|
||||
if [ -n "$port" ]; then
|
||||
# Try to hit CDP (via netns if needed)
|
||||
if ! timeout 5 bash -c "cat < /dev/null > /dev/tcp/127.0.0.1/$port" 2>/dev/null; then
|
||||
echo "reaping dead browser pid $pid (port $port not responding)"
|
||||
kill -TERM $pid 2>/dev/null
|
||||
fi
|
||||
fi
|
||||
# Check age (kill if >12h old)
|
||||
age=$(($(date +%s) - $(stat -c %Y /proc/$pid 2>/dev/null || echo 0)))
|
||||
if [ "$age" -gt 43200 ]; then
|
||||
echo "reaping old browser pid $pid (age ${age}s)"
|
||||
kill -TERM $pid 2>/dev/null
|
||||
fi
|
||||
done
|
||||
# Clean up old log files
|
||||
find /tmp -name "*-smoke.log" -mtime +7 -delete 2>/dev/null
|
||||
find /tmp -name "otp_*.py" -mtime +1 -delete 2>/dev/null
|
||||
find /tmp -name "check_*.py" -mtime +1 -delete 2>/dev/null
|
||||
Reference in New Issue
Block a user