Added all of the existing code
This commit is contained in:
56
test_shutdown.sh
Normal file
56
test_shutdown.sh
Normal file
@@ -0,0 +1,56 @@
|
||||
#!/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 ==="
|
||||
Reference in New Issue
Block a user