Files
techircd/test_shutdown.sh

57 lines
1.3 KiB
Bash

#!/bin/bash
# TechIRCd Shutdown Test Script
echo "=== TechIRCd Shutdown Test ==="
echo
# Start the server in background
echo "Starting TechIRCd..."
./techircd start &
SERVER_PID=$!
echo "Server started with PID: $SERVER_PID"
echo "Waiting 5 seconds for server to initialize..."
sleep 5
# Test connection
echo "Testing initial connection..."
timeout 5s bash -c '
exec 3<>/dev/tcp/localhost/6667
echo "NICK TestUser" >&3
echo "USER testuser 0 * :Test User" >&3
sleep 2
echo "PING :test" >&3
read -t 3 response <&3
echo "Response: $response"
exec 3<&-
exec 3>&-
' && echo "✅ Connection test passed" || echo "❌ Connection test failed"
echo
echo "Testing graceful shutdown (SIGTERM)..."
echo "Sending SIGTERM to server..."
# Send SIGTERM and monitor for graceful shutdown
kill -TERM $SERVER_PID
# Wait up to 15 seconds for graceful shutdown
TIMEOUT=15
for i in $(seq 1 $TIMEOUT); do
if ! kill -0 $SERVER_PID 2>/dev/null; then
echo "✅ Server shut down gracefully after $i seconds"
echo
echo "=== Shutdown Test Complete ==="
exit 0
fi
sleep 1
echo -n "."
done
echo
echo "⚠️ Server did not shut down gracefully within $TIMEOUT seconds"
echo "Forcing shutdown..."
kill -9 $SERVER_PID 2>/dev/null
echo
echo "=== Shutdown Test Complete ==="