Etsy Storefront
I recently published a small Python module to PyPI and GitHub: db4e-systemd, a lightweight wrapper around systemctl that lets you control services (start, stop, enable, disable, status) directly from Python with clean, minimal code.
I wrote it to support my own db4e project — a full-featured deployment manager for Monero mining components — but figured the Db4eSystemd class might be useful on its own. It turns out I was right.
After setting up the PyPI package and linking to my GitHub repo, I quietly pushed version 1.0.0 and moved on. A day later, I checked GitHub Insights out of curiosity: 16 unique cloners. The next day? 35 unique cloners. Without any promotion at all.
It seems there really was a gap in the ecosystem — one that db4e-systemd fills nicely.
Python has always had subprocess-based hacks for controlling services, but no clean, idiomatic wrapper for systemctl that just works and doesn’t bring in tons of dependencies. I wanted:
.start(), .stop(), .restart(), .enable(), .disable(), .status().active, .enabled, .installed, .pidAnd that’s exactly what I built. One class, under 200 lines, zero dependencies beyond the standard library.
Once I saw people were actually cloning the repo, I cleaned up the packaging:
README.md with usage examplesCHANGELOG.mdsetup.py and pyproject.tomlI even wrote a PyPI HOWTO guide for others who want to publish their own packages.
While db4e-systemd is complete for now, it plays a key role in a larger system, the Database 4 Everything, where I’m tracking uptime to implement a “1% donation model” — 5 minutes of pooled mining time for every 8 hours of uptime. That logic will likely live in this module too.
In open-source, we often think big — but sometimes the smallest tools have the biggest reach. This was a great reminder of that. I’ll definitely keep this momentum going.
If you’re looking for a simple way to manage systemd services from Python, give db4e-systemd a try. And if you find it useful, drop a star — it makes a difference!
Introduction
Introduction
A Complicated Setup
Round One Knockout
Textual Documentation Error
What I Started With:
Hey folks,
A Modest Module That Found Its Moment
As part of my goal to be more visible in the world, I setup this domain i.e. https://osoyalc.com. I use it to publish information about the projects I’m work...
It’s been a while since I started and then abandoned this blog. My last post was in June of 2024!!
I decided that I didn’t like the way that the main blog page looks. I am using GitHub to host the website and am using a fork of the jekyll/minima theme. My ...
Current Status
Impromptu Poetry
Hey Folks,
I can’t help but notice the trope of the evil AI is a bit overused in Sci-Fi media. But I think films like Atlas are starting to shift the narrative and show...
Hello Friends!
This is it! I’m embarking on my blogging journey! It’s exciting, exhilerating and I’m a tiny bit nervous too. But, as my good friend Sally told me,