# Idle Sleep Monitor This program monitors system resource usage and automatically suspends the system when it detects extended periods of low resource utilization. ## Requirements - Linux system with systemd - NVIDIA GPU with drivers installed - Go 1.21 or later - Root privileges (required for system suspension) ## Installation 1. Clone this repository 2. Install dependencies: ```bash go mod download ``` 3. Build the program: ```bash go build ``` ## Usage The program must be run as root since it needs permissions to suspend the system: ```bash sudo ./idlesleep ``` The program will monitor the following metrics over a 5-minute period: - CPU usage across all cores (threshold: < 20%) - GPU usage (threshold: < 20%) - Disk I/O (threshold: < 5 MB/s) - Network I/O (threshold: < 1 MB/s) If all metrics stay below their thresholds for the entire monitoring period, the system will be suspended. ## Configuration The thresholds are defined as constants in `main.go`. You can modify them by editing the following values: ```go const ( checkInterval = 10 * time.Second monitoringPeriod = 5 * time.Minute cpuThreshold = 20.0 // percentage gpuThreshold = 20.0 // percentage diskThreshold = 5 * 1024 * 1024 // 5 MB/s networkThreshold = 1 * 1024 * 1024 // 1 MB/s ) ```