user-service

Automate per-user systemd service management for CLI tools.

Updated Aug 23, 2026
One-click install
npx skills add https://github.com/thesobercoder/skills --skill user-service
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: user-service
Source: https://github.com/thesobercoder/skills/tree/main/user-service
Command: npx skills add https://github.com/thesobercoder/skills --skill user-service

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve?

Automates the management of per-user systemd services for CLI tools, eliminating repetitive setup and manual daemon steps so users can run long-running commands safely and reliably.

Core Features & Use Cases

  • Create, list, enable, disable, restart, and monitor per-user systemd units for CLI tools.
  • Ensure services start on user login and survive reboots within the user's session scope.
  • Use LAN exposure guidance to share a per-user service via a proxy when needed (optional).

Quick Start

Create and enable a new user service by writing ~/.config/systemd/user/<name>.service with an absolute ExecStart path and reloading then enabling the user daemon.

Frequently Asked Questions about user-service

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I run a CLI tool as a persistent background service using systemd?

You can run a CLI tool as a persistent background service by creating a per-user systemd unit file in ~/.config/systemd/user, using an absolute binary path for ExecStart, then enabling it with systemctl --user enable --now.

How do I make a user systemd service survive reboots in Linux?

To make a user systemd service survive reboots, write the unit file under ~/.config/systemd/user and enable it. This ensures the service starts on user login and persists within the user's session scope across restarts.

Can I manage user-level systemd services without root access?

Yes, you can manage user-level systemd services without root access. This approach automates creating, listing, enabling, disabling, and monitoring units entirely within your user scope using the systemctl --user command.

What is the best way to automate creating and monitoring user services?

The best way to automate creating and monitoring user services is using a dedicated management tool that writes unit files to ~/.config/systemd/user and handles daemon-reload, enable, and start commands automatically.

Why does my user service fail to start when using a relative binary path?

Your user service fails because per-user systemd units require using absolute binary paths in the ExecStart directive. You must specify the complete file path to the CLI tool for the service to start correctly.

How do I expose a per-user systemd service to my local network?

You can expose a per-user systemd service to your local network by applying LAN exposure guidance to share the service via a proxy, allowing network access to the background process when needed.