graceful-shutdown
Implement graceful shutdown procedures to handle SIGTERM signals, drain connections, complete in-flight requests, and clean up resources properly. Use when deploying containerized applications, handling server restarts, or ensuring zero-downtime deployments.
By aj-geddes · 418 installs
npx skills add aj-geddes/useful-ai-prompts --skill graceful-shutdown
Source repository · Upstream listing
Graceful Shutdown
Table of Contents
[Overview]( overview)
[When to Use]( when to use)
[Quick Start]( quick start)
[Reference Guides]( reference guides)
[Best Practices]( best practices)
Overview
Implement proper shutdown procedures to ensure all requests are completed, connections are closed, and resources are released before process termination.
When to Use
Kubernetes/Docker deployments
Rolling updates and deployments
Server restarts
Load balancer drain periods
Zero downtime deployments
Process managers (PM2, systemd)
Long running background jobs
Database connection cleanup
Quick Start
Minimal working example:
Reference Guides
Detailed implementations in the references/ directory:
Guide Contents
[Express.js Graceful Shutdown](references/expressjs graceful shutdown.md) Express.js Graceful Shutdown
[Kubernetes Aware Shutdown](references/kubernetes aware shutdown.md) Kubernetes Aware Shutdown
[Worker Process Shutdown](references/worker process shutdown.md) Worker Process Shutdown
[Database Connection Pool Shutdown](references/database connection pool shutdown.md) Database Connection Pool Shutdown
[PM2 Graceful Shutdown](references/pm2 graceful shutdown.md) PM2 Graceful Shutdown
[Python/Flask Graceful Shutdown](references/pythonflask graceful shutdown.md) Python/Flask Graceful Shutdown
Best Practices
✅ DO
Handle SIGTERM and SIGINT signals
Stop accepting new requests immediately
Wait for in flight requests to complete
Set reasonable shutdown timeouts
Close database connections properly
Flush logs and metrics
Fail health checks during shutdown
Test shutdown procedures
Log shutdown progress
Use graceful shutdown in containers
❌ DON'T
Ignore shutdown signals
Force kill processes without cleanup
Set unreasonably long timeouts
Skip resource cleanup
Forget to close connections
Block shutdown indefinitely