Document comprehensive signal handling for SIGTERM, CTRL+C, and other signals#129
Open
Document comprehensive signal handling for SIGTERM, CTRL+C, and other signals#129
Conversation
Adding CLAUDE.md with task information for AI processing. This file will be removed when the task is complete. Issue: #15
… signals Fixes #15 ### 📋 What this PR adds: **Enhanced Documentation:** - Comprehensive signal handling section in README.md - Complete coverage of SIGINT (CTRL+C), SIGTERM, SIGKILL, and other Unix signals - Signal exit codes table with 128 + N formula explanation - Programmatic signal control examples with runner.kill() method - Graceful shutdown patterns with SIGTERM → SIGKILL escalation - Interactive command termination examples - Multiple process signal management **New Example Files:** - `examples/signal-handling-demo.mjs` - Comprehensive demo of all signal types - `examples/sigterm-sigkill-escalation.mjs` - Production-ready graceful shutdown patterns - `examples/ctrl-c-vs-sigterm.mjs` - Detailed comparison of SIGINT vs SIGTERM semantics ### 🚀 Key Features Documented: **Signal Types Covered:** - SIGINT (2) - CTRL+C interruption → Exit code 130 - SIGTERM (15) - Graceful termination → Exit code 143 - SIGKILL (9) - Force termination → Exit code 137 - SIGUSR1/SIGUSR2 (10/12) - User-defined signals - SIGHUP, SIGQUIT, SIGPIPE, SIGALRM, etc. **Usage Patterns:** - `runner.kill()` - Default SIGTERM - `runner.kill('SIGINT')` - Send specific signals - Graceful shutdown with timeout escalation - Interactive command handling (ping, long-running processes) - Multiple concurrent process signal management **Production Examples:** - SIGTERM → SIGKILL escalation with configurable timeouts - Exit code validation and handling - Signal semantic meaning explanations - Best practices for process lifecycle management ### 📚 Documentation Enhancements: - Updated "Signal Handling" section title to include SIGTERM and other signals - Added comprehensive signal reference table - Provided real-world usage examples for each signal type - Explained exit code formulas and standard conventions - Cross-platform signal behavior documentation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
📋 Summary
This PR provides comprehensive documentation for signal handling in command-stream, specifically addressing issue #15 by documenting how to send SIGTERM, CTRL+C (SIGINT), and other signals to executed commands.
Fixes #15
🚀 What's Added
Enhanced README Documentation
runner.kill()with different signal typespingthat ignore stdin but respond to signalsNew Example Files
examples/signal-handling-demo.mjs- Comprehensive demonstration of all signal types with exit code validationexamples/sigterm-sigkill-escalation.mjs- Production-ready graceful shutdown patterns with configurable timeoutsexamples/ctrl-c-vs-sigterm.mjs- Detailed comparison explaining the semantic differences between SIGINT and SIGTERM📚 Documentation Coverage
Signal Types Documented
Usage Patterns Covered
🧪 Testing
🎯 Addresses Issue #15
This PR directly addresses the request in issue #15 to "Document how to send SIGTERM (CTRL+C) and other signals to executed command" by:
📖 Key Learning Points
The documentation now provides complete guidance on signal handling, making it easy for users to implement proper process lifecycle management in their applications.
🤖 Generated with Claude Code