A minimal terminal UI for monitoring and controlling systemd services. Think lazydocker, but for systemd.
A simple TUI that lets you:
- See your systemd services at a glance
- View logs in real-time
- Start, stop, restart, and reload services
- All from your terminal, no GUI needed
# Build it
make build
# Install to /usr/local/bin (requires sudo)
sudo make install
# Or install to a custom location
sudo make install PREFIX=/opt/lazysystemd
# Uninstall
sudo make uninstall# Install build deps (if needed)
sudo apt-get install build-essential debhelper golang-go gzip
# You may need newer go:
wget https://go.dev/dl/go1.22.0.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.22.0.linux-amd64.tar.gz
sudo ln -s /usr/local/go/bin/go /usr/local/bin/go
# Build the package
dpkg-buildpackage -b -uc -us
# Install it
sudo dpkg -i ../lazysystemd_1.0.0-1_amd64.debThe package installs to:
/usr/bin/lazysystemd/etc/lazysystemd/config.example.yaml
# Run it (config will be created automatically if missing)
lazysystemdThat's it. No dependencies beyond Go and systemd.
The app defaults to reading configuration from:
/usr/local/etc/lazysystemd/config.yaml
If the file doesn't exist, it will be created automatically as an empty file. If the file is empty, you'll see a message: reading yaml from ... and is empty
Create a config.yaml file listing the services you want to monitor:
services:
- my-service.service
- another-service.serviceYou can also specify a custom config path:
lazysystemd -config /path/to/config.yaml| Key | Action |
|---|---|
↑ / k |
Move up |
↓ / j |
Move down |
g |
Jump to top |
G |
Jump to bottom |
s |
Start service |
t |
Stop service |
r |
Restart service |
L |
Reload selected service |
e |
Enable selected service |
d |
Disable selected service |
l |
systemctl daemon-reload |
f |
Toggle live log following |
R |
Refresh all services statuses |
q |
Quit |
●= Active and running○= Inactive✗= Failed→= Activating←= Deactivating?= Unknown/Error
Enabled/disabled indicator (shown next to the active state):
E= enabledD= disabledS= staticM= masked
- Uses
systemctl showto get service status (parses key=value output) - Uses
journalctl -ufor logs - Follow mode streams with
journalctl -f - Built with Bubble Tea for the TUI
- Linux with systemd
- Go 1.22+ (for building)
- If you hit Go module cache issues with
uniseg, try:go clean -modcache && go mod tidy
This is experimental, so:
- Feel free to open issues
- PRs welcome (but no promises on merge speed)
MIT
I wanted a simple way to monitor a few systemd services without opening multiple terminal windows or remembering service names.