All source listed below is under MIT license if no LICENSE file stating different is available.

rproc - A Zero-Configuration Process Manager

Authored by: retoor Version: 1.1 Date: 2025-09-26


1. Overview

rproc is a lightweight, file-based, and zero-configuration process manager designed for simplicity and robustness. It monitors a single directory, treating the presence, absence, and modification of executable shell scripts (.sh files) as the source of truth for managing long-running processes.

Its design is predicated on providing a resilient service management layer with minimal operational overhead.

Key Advantages

  • Simplicity and Intuitiveness: No complex commands, APIs, or configuration files are required. Process management is performed using standard shell commands (touch, rm, mv, chmod), making it immediately accessible.
  • Extreme Resource Efficiency: As a compiled C binary using event-driven I/O (inotify, select), rproc has a negligible memory and CPU footprint. It consumes system resources only when actively handling a file event or a process state change.
  • High Portability: The application is a single, self-contained executable with no external dependencies beyond the standard C library. This allows it to be deployed on nearly any modern Linux system without an installation procedure.
  • GitOps-Friendly Workflow: Because the desired state of all processes is defined by files on disk, rproc integrates perfectly with version control systems. Managing services can be as simple as a git pull in the working directory to automatically add, remove, or restart processes based on the committed changes.

2. Core Concepts

The fundamental principle of rproc is that the state of the executable .sh files in its working directory directly represents the desired state of the managed processes.

  • To run a process: Create an executable .sh file.
  • To stop a process: Delete the .sh file.
  • To restart a process: Modify the .sh file.

rproc uses the Linux inotify subsystem to watch for these file system events in real-time and acts accordingly.


3. Installation

rproc is a single-file C application.

Compilation

Compile the source code using a standard C compiler like GCC:

gcc -Wall -Wextra -O2 -std=c11 -o rproc rproc.c
.gitignore
main.c
Makefile
README.md
rproc
rproc.service