rust-graceful-shutdown

Orchestrate graceful shutdown for Rust services using signal handling and broadcast channels.

1|Updated Dec 30, 2025
One-click install
npx skills add https://github.com/gar-ai/mallorn --skill rust-graceful-shutdown
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: rust-graceful-shutdown
Source: https://github.com/gar-ai/mallorn/tree/main/.claude/skills/rust-async-graceful-shutdown
Command: npx skills add https://github.com/gar-ai/mallorn --skill rust-graceful-shutdown

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Patterns for clean service shutdown with proper resource cleanup in Rust, ensuring long-running processes terminate safely when signaled.

Core Features & Use Cases

  • Signal handling for Ctrl+C and termination signals to trigger graceful shutdown.
  • Broadcast channels to coordinate shutdown across multiple workers and components.
  • CancellationToken-like patterns to propagate shutdown across async tasks.
  • Cleanup strategies (Drop guards, scoped cleanup) to release resources deterministically.
  • End-to-end example flow for a Rust daemon or server.

Quick Start

Implement a graceful shutdown pattern in a Rust service using signal handling, broadcast channels, and resource cleanup patterns.

Frequently Asked Questions about rust-graceful-shutdown

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I implement graceful shutdown in a Rust service?▼

Graceful shutdown in Rust is orchestrated by listening for SIGINT and SIGTERM signals and using broadcast channels to propagate the termination command across async workers. This ensures in-flight work completes and resources are released deterministically.

How do I coordinate resource cleanup across multiple Tokio workers during termination?▼

To coordinate resource cleanup across Tokio workers, use broadcast-based shutdown propagation and CancellationToken-like patterns to notify tasks. Combined with Drop guards and scoped cleanup, this ensures long-running daemons release resources deterministically upon termination.

What is the best way to handle SIGTERM and Ctrl+C signals in Rust daemons?▼

Handling SIGTERM and Ctrl+C in Rust daemons is best achieved by implementing dedicated signal listeners that trigger a broadcast channel. This approach notifies all background workers to initiate cancellation and execute cleanup strategies rather than terminating abruptly.

Does this graceful shutdown pattern work for background workers with in-flight work?▼

Yes, this graceful shutdown pattern works for background workers with in-flight work by utilizing cancellation tokens and broadcast channels. It ensures long-running processes wait for active tasks to finish their current operations before shutting down safely.

Why do I need broadcast channels for Rust service termination instead of immediate stops?▼

You need broadcast channels for Rust service termination to prevent immediate stops from corrupting state or leaking resources. Broadcast channels allow a single shutdown signal to notify all async components, ensuring coordinated and safe cleanup.