-
-
Notifications
You must be signed in to change notification settings - Fork 0
Description
Cross-platform Daemon/Service Mode for daemoneye-agent
Summary
Implement a first-class, cross-platform service/daemon mode for the daemoneye-agent (Orchestrator) using the proc-daemon crate that:
- Runs as a native background service on Linux/macOS (daemon) and Windows (service)
- Supervises collector processes (e.g., procmond and specialty collectors) with robust lifecycle management
- Integrates with system service managers (systemd, launchd, Windows SCM)
- Preserves parity with interactive mode while adding secure privilege management, logging, health, and recovery
🏗️ Architecture Integration: This issue implements the service foundation that enables daemoneye-agent to manage collector-core based components like procmond as described in issue #89.
Context & Motivation
This is a core building block to operate DaemonEye reliably on servers and endpoints, ensuring automatic startup at boot, robust recovery, and centralized control of all monitoring components.
- Critical for production deployments and unattended operation (blocking adoption)
- Ensures proper privilege separation and least-privilege runtime
- Enables standardized installation, logging, and observability across Linux, macOS, and Windows
- Provides resilient supervision for collector processes with health checks and backoff restarts
Architecture Integration
Service Hierarchy
Operating System
├── Service Manager (systemd/launchd/SCM)
│ └── daemoneye-agent (proc-daemon based service)
│ ├── Process Supervision
│ │ ├── procmond (collector-core based)
│ │ ├── netmond (collector-core based)
│ │ └── filemond (collector-core based)
│ ├── Configuration Management
│ ├── Health Monitoring
│ └── IPC Coordination
└── System APIs & Resources
Integration Points
- Issue Implement Core Process Monitoring Daemon (procmond) #89: procmond implementation will run as managed collector under this service
- collector-core: All collectors use this framework and are supervised by daemoneye-agent
- proc-daemon: Core service behavior and cross-platform daemon functionality
- daemoneye-lib: Shared configuration, IPC, and telemetry infrastructure
Technical Requirements
Service Framework Implementation
- proc-daemon Integration
- Integrate proc-daemon crate for cross-platform service behavior
- Handle service installation, start, stop, restart operations
- Implement service status reporting and health monitoring
- Support service configuration management
Cross-Platform Service Management
-
Linux/macOS Daemon Support
- systemd service integration with proper service files
- launchd integration for macOS
- UNIX signal handling (SIGTERM, SIGHUP, SIGUSR1)
- PID file management and process locking
-
Windows Service Support
- Windows Service Control Manager (SCM) integration
- Service installation and uninstallation
- Windows service events and logging
- Service recovery configuration
Collector Process Supervision
-
Lifecycle Management
- Start, stop, restart collector processes (procmond, etc.)
- Health monitoring and automated recovery
- Graceful shutdown coordination
- Process resource monitoring and limits
-
Configuration Management
- Hot-reload configuration without service restart
- Per-collector configuration validation
- Configuration change propagation
- Environment isolation for collectors
Implementation Phases
Phase 1: Service Foundation
-
proc-daemon Integration
- Add proc-daemon crate dependency to daemoneye-agent
- Implement basic service lifecycle (start, stop, status)
- Create service installation/uninstallation logic
- Add cross-platform service configuration
-
Platform Integration
- Create systemd service files for Linux
- Implement launchd plist for macOS
- Add Windows service manifest and installer
- Test service registration on all platforms
Phase 2: Process Supervision
-
Collector Management
- Implement collector process spawning and monitoring
- Add health check integration with collector-core
- Create configuration distribution system
- Implement graceful shutdown coordination
-
Recovery & Resilience
- Add automatic restart capabilities
- Implement circuit breaker patterns
- Create resource monitoring and cleanup
- Add performance metrics collection
Dependencies
- proc-daemon: Core service/daemon functionality
- collector-core: Framework for all managed collectors
- daemoneye-lib: Shared infrastructure (config, IPC, telemetry)
- procmond: Primary collector to be supervised (Issue Implement Core Process Monitoring Daemon (procmond) #89)
- Platform service managers (systemd, launchd, Windows SCM)
Acceptance Criteria
Service Operation
-
Cross-platform Compatibility
- Successfully installs and runs on Linux, macOS, and Windows
- Integrates with native service managers on each platform
- Handles platform-specific service requirements
-
Service Lifecycle
- Service starts automatically at boot
- Responds correctly to start, stop, restart commands
- Handles graceful shutdown and cleanup
- Supports service status queries
Collector Supervision
- Process Management
- Successfully starts and monitors collector processes
- Detects and recovers from collector failures
- Coordinates graceful shutdown of all components
- Reports aggregate health status
Timeline
Target completion aligned with v0.2.0 milestone (Due: September 22, 2025)
Related Issues
- Issue Implement Core Process Monitoring Daemon (procmond) #89: Procmond implementation (primary supervised collector)
- Issue Implement Comprehensive CLI Interface and Management System #91: CLI interface integration with service mode
- Issue 🧪 Implement Comprehensive Test Suite with Quality Assurance Pipeline #61: Testing framework for service reliability
- Issue Implement Tamper-Evident Audit Logging System with BLAKE3 Cryptographic Chain #42: Audit logging integration
This issue enables the core service architecture that makes DaemonEye a production-ready monitoring platform.