A simple, intuitive, and extensible cross-platform service manager inspired by Gentoo's Portage and supporting monkey patching.
juststart (shortened as jst) is a service management system designed to replace runit and systemctl service managers. It features intuitive scripts (including status hook scripts), script-based timers, flexible configurations, and user-friendly automation. In addition, it follows the principle of behavior as parameters, allowing users to use this service management system more naturally. With influences from Gentoo's Portage, juststart also supports monkey patching for easy customization of the software's behavior.
- User-friendly, following the KISS (Keep it simple) principle
- Script-based timers
- Flexible configurations and automation
- Behavior as parameters
- Supports monkey patching for easy behavior customization
- Can be used as an init system(Planing)
- Designed for cross-platform compatibility
- Accepts other software (e.g., systemd, runit) as backends
- Inspired by Gentoo's Portage with a simple world list
- Python standard library
It is recommended to install using pip from GitHub:
pip install git+https://github.com/xz-dev/juststart.git
Or use tools like pipx for installation.
-
Create a service directory:
mkdir ~/server
-
Start the juststart service:
juststart -c ~/server serve
-
Open a new terminal and use the following commands to add, manage, and view the service status:
jst -c ~/server add run.sh jst -c ~/server status run
Here's a brief overview of the available commands:
serve
: Run as a daemonadd
: Add a servicedel
: Delete a serviceenable
: Enable a servicedisable
: Disable a servicestart
: Start a servicerestart
: Restart a servicestop
: Stop a servicereload
: Reload config for a servicestatus
: Status of a servicelist
: List all servicesgc
: Garbage collect for stopped servicesshutdown
: Shutdown the daemon
For more detailed information, refer to jst --help
.
- Implement comprehensive testing, including unit tests and behavior tests.
- Add support for systemd and runit as backends.
This project is currently under active development, and we welcome everyone to join the development process, submit code, or share ideas in the user community, on GitHub, or anywhere else.
To join the user community and communicate with other users, please join our Matrix room:
Matrix Room: #juststart:matrix.org
Feel free to ask questions, share your experiences, and contribute to the project!