Skip to content

rgwood/systemctl-tui

Repository files navigation

systemctl-tui

Crates.io

A fast, simple TUI for interacting with systemd services and their logs. Screenshot from 2025-01-23 21-44-31

systemctl-tui can quickly browse service status and logs, start/stop/restart/reload services, and view/edit unit files. It aims to do a small number of things well.

Install

Note: this project only works on Linux (WSL works if you have systemd enabled). Binaries are published for x64 and ARM64 in the GitHub releases, and distro packages are available.

Binary Release

Automated install/update (don't forget to always verify what you're piping into bash):

curl https://raw.githubusercontent.com/rgwood/systemctl-tui/master/install.sh | bash

The script installs the downloaded binary to $HOME/.local/bin by default, but it can be changed by setting the DIR environment variable.

Rust

If you'd rather build from scratch you will need Rust installed. Then either:

  1. Run cargo install systemctl-tui --locked
  2. Clone the repo and run cargo build --release to get a release binary at target/release/systemctl-tui

Distro Packages

Packaging status

Packaging status

Arch Linux

systemctl-tui can be installed from the official repositories:

pacman -S systemctl-tui

Nix

A Nix package is available and can be installed as follows:

nix-shell -p systemctl-tui

Optional:

  1. Alias systemctl-tui to st for quick access
  2. Create a symlink so systemctl-tui can be used with sudo:
sudo ln -s ~/.cargo/bin/systemctl-tui /usr/bin/systemctl-tui

Remote hosts

systemctl-tui --host user@hostname manages a remote machine over SSH, no remote install needed. Service operations go over a systemd-stdio-bridge D-Bus connection (like systemctl --host) and logs come from running journalctl on the remote host, all multiplexed over a single SSH connection.

The remote host needs systemd-stdio-bridge (part of the core systemd package on all major distros; verified working on systemd 249 and 255, and the flags we use exist back to at least systemd 239) and journalctl. Viewing user-scope services requires a running user manager on the remote host (an active session, or lingering enabled via loginctl enable-linger). Editing unit files remotely is not supported yet.

Help

image

Credits

About

A fast, simple TUI for interacting with systemd services and their logs

Resources

License

Contributing

Stars

2k stars

Watchers

13 watching

Forks

Contributors