n-hass / autosleep

A daemon that automatically suspends a Linux system when customisable conditions are met

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

About

This is a really lightweight program intended to run daemonised on Linux servers/PCs with systemd. It will perform configurable checks for activity on the system and, if the system has been idle long enough, will suspend the system.

Your defined activity checks will all be run together every set number of seconds defined in your configuration file. They will all be checked iteratively but will short circuit; if one check returns that the system is active, the remaining checks will be skipped.

Installation

  1. Clone the repo
  2. Install with ./install.sh

This will: build the binary application and move it to /usr/local/bin, install the systemd service and the configuration files with a couple demonstrative checks in the directory /etc/autosleep.d/checks.

Configuration

See the wiki for info on configuration.

Usage

After installation, start and enable the systemd service with:

systemctl enable --now autosleep.service

By default, the program will log basic info about the checks to the system journal so you can check what it's doing at runtime.

To-do

  • 'Users' class checks
    • Check compatibility across different distributions
    • Rewrite to use a crate like rust-psutil once their features are implemented
  • 'Command' class checks
  • More types of activity checks
    • Network (incoming and outgoing connections)
    • Process-based
    • X11 idle detection
  • Scheduling a wake-up
  • Documentation
  • Unit tests
  • Releases contain builds
  • Publish on package managers

About

A daemon that automatically suspends a Linux system when customisable conditions are met

License:GNU General Public License v3.0


Languages

Language:Rust 90.2%Language:Shell 9.8%