Product
Introducing License Enforcement in Socket
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Supports SSH and NFS clients. Uses D-Bus inhibit to prevent sleep/suspend.
Note: For full functionality you must run this as root to allow access to /proc/.... in order to determine if SSH sessions are active or idle. Depending on Linux configuration, access to the system D-Bus may also require root. In this case the program must be run as root. Installation instructions are for a service running as root.
Tested on Fedora 39 with NFSv4.
sudo dnf install python3-pystemd
prevent-sleep
cd /opt
sudo python -m venv prevent_sleep --system-site-packages --upgrade-deps
sudo prevent_sleep/bin/python -m pip install --upgrade prevent-sleep # or use path to sourcedir
prevent_sleep/bin/prevent-sleep --version
sudo prevent_sleep/bin/prevent-sleep --install-service
sudo systemctl daemon-reload
sudo systemctl enable --now prevent-sleep
Note: Use systemd-inhibit
to check if this or other programs are preventing suspend.
[xxx@yyy opt]$ systemd-inhibit
WHO UID USER PID COMM WHAT WHY MODE
ModemManager 0 root 1197 ModemManager sleep ModemManager needs to reset devices delay
NetworkManager 0 root 1239 NetworkManager sleep NetworkManager needs to turn off networks delay
UPower 0 root 1794 upowerd sleep Pause device polling delay
prevent-sleep 0 root 4678 prevent-sleep sleep SSH: 2 active clients [(3567, 'john'), (4007, 'jane')] block
gdm 42 gdm 1846 gsd-power handle-lid-switch External monitor attached or configuration changed recently block
gdm 42 gdm 1846 gsd-power sleep GNOME needs to lock the screen delay
6 inhibitors listed.
[xxx@yyy opt]$ systemd-inhibit
WHO UID USER PID COMM WHAT WHY MODE
ModemManager 0 root 1197 ModemManager sleep ModemManager needs to reset devices delay
NetworkManager 0 root 1239 NetworkManager sleep NetworkManager needs to turn off networks delay
UPower 0 root 1794 upowerd sleep Pause device polling delay
prevent-sleep 0 root 4678 prevent-sleep sleep NFS: 1 clients [('4', '192.168.4.107, Linux NFSv4.2 mylaptop')] block
prevent-sleep 0 root 4678 prevent-sleep sleep SSH: No activity. Will remove block at 2024-01-28T19:36:51 block
gdm 42 gdm 1846 gsd-power handle-lid-switch External monitor attached or configuration changed recently block
gdm 42 gdm 1846 gsd-power sleep GNOME needs to lock the screen delay
7 inhibitors listed.
Note that only SSH clients with traffic during the last check period will prevent sleep!
sudo dnf install systemd-devel python3{.10,.11,.12}-devel # For all python versions listen in noxfile.py
pip install nox
nox # In root of checked out sources
Note that the test is rather rudimentary. It is not mocked (yet) so running it will require D-Bus access and it will fail if being run on a server with NFS clients (if not run as root).
This program [https://pypi.org/project/sleep-inhibitor/], which I found after writing prevent-sleep
, does a similar thing.
FAQs
Prevent sleep/suspend when there are (active) SSH or NFS clients.
We found that prevent-sleep demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Product
Ensure open-source compliance with Socket’s License Enforcement Beta. Set up your License Policy and secure your software!
Product
We're launching a new set of license analysis and compliance features for analyzing, managing, and complying with licenses across a range of supported languages and ecosystems.
Product
We're excited to introduce Socket Optimize, a powerful CLI command to secure open source dependencies with tested, optimized package overrides.