{"id":50465436,"url":"https://github.com/threefoldtech/zos_zinit","last_synced_at":"2026-06-01T07:03:17.317Z","repository":{"id":41829973,"uuid":"182997281","full_name":"threefoldtech/zos_zinit","owner":"threefoldtech","description":"A init replacement that feels like runit written in rust+tokio","archived":false,"fork":false,"pushed_at":"2026-05-27T14:09:52.000Z","size":525,"stargazers_count":15,"open_issues_count":14,"forks_count":2,"subscribers_count":2,"default_branch":"master","last_synced_at":"2026-05-27T16:06:06.641Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/threefoldtech.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2019-04-23T11:06:57.000Z","updated_at":"2026-05-27T14:12:56.000Z","dependencies_parsed_at":"2025-05-31T11:55:11.246Z","dependency_job_id":"007c3ac2-76cf-482b-bc3e-cc48571ea224","html_url":"https://github.com/threefoldtech/zos_zinit","commit_stats":null,"previous_names":["threefoldtech/zos_zinit"],"tags_count":30,"template":false,"template_full_name":null,"purl":"pkg:github/threefoldtech/zos_zinit","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/threefoldtech%2Fzos_zinit","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/threefoldtech%2Fzos_zinit/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/threefoldtech%2Fzos_zinit/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/threefoldtech%2Fzos_zinit/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/threefoldtech","download_url":"https://codeload.github.com/threefoldtech/zos_zinit/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/threefoldtech%2Fzos_zinit/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33763659,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-01T02:00:06.963Z","response_time":115,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-06-01T07:03:17.240Z","updated_at":"2026-06-01T07:03:17.311Z","avatar_url":"https://github.com/threefoldtech.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ZOS Init [![Rust](https://github.com/threefoldtech/zos_zinit/actions/workflows/rust.yml/badge.svg)](https://github.com/threefoldtech/zos_zinit/actions/workflows/rust.yml)\n\nZOS Init is a lightweight PID 1 replacement inspired by runit, written in Rust using Tokio for async I/O. It manages service startup, supervision, and lifecycle, ensuring configured services remain running and handling dependencies through a simple declarative interface.\n\n## What this is\n\nZOS Init is an init system and process supervisor designed for environments that need reliable service management without the complexity of traditional init systems. It runs as PID 1 or in container mode, monitors configured services, restarts them on failure, and respects dependency ordering during startup and shutdown. ZOS Init exposes both a Unix socket control interface and an HTTP proxy with a JSON-RPC 2.0 API.\n\n## What this repository contains\n\n- **`zinit` binary** — the init system and process supervisor\n- **Unix socket control interface** — for local CLI interaction\n- **HTTP proxy** — JSON-RPC 2.0 API for remote management\n- **CLI commands** — `init`, `list`, `start`, `stop`, `monitor`, `proxy`, and more\n- **Declarative service configuration** via YAML files\n- **Container mode** with appropriate signal handling\n- **Configurable logging** including ringbuffer and stdout options\n\n## Role in the stack\n\nZOS Init serves as the init system for ZOS / Zero-OS nodes and can also be used as a standalone process manager in containers or lightweight Linux systems. It is the layer that ensures system services (networking, storage, provisioning, and user workloads) are started in the correct order and kept healthy. External tools and clients — including the ZOS Init Client Rust library — can interact with it over its socket or HTTP APIs.\n\n## ZOS / Zero-OS\n\nZOS, also known as Zero-OS, is the operating system layer used to run and manage nodes. It provides the low-level runtime environment for workloads, networking, storage, and automation. ZOS Init is the init system at the core of ZOS, responsible for bootstrapping and supervising all node services.\n\n## Relation to ThreeFold\n\nThis technology is used within the ThreeFold ecosystem and was first deployed on the ThreeFold Grid. The component itself is designed as reusable infrastructure technology and should be understood by its technical function first, independent of any specific deployment.\n\n## Ownership\n\nThis repository is owned and maintained by TF-Tech NV, a Belgian company responsible for the development and maintenance of this technology.\n\n## Installation\n\n```bash\ncurl https://raw.githubusercontent.com/threefoldtech/zinit/refs/heads/master/install.sh | bash\n\n# to install \u0026 run\ncurl https://raw.githubusercontent.com/threefoldtech/zinit/refs/heads/master/install_run.sh | bash\n```\n\nClick [here](docs/installation.md) for more information on how to install ZOS Init.\n\n## Usage\n\n### Process Manager (zinit)\n\n```bash\n# Run zinit in init mode\nzinit init --config /etc/zinit/ --socket /var/run/zinit.sock\n\n# List services\nzinit list\n\n# Start a service\nzinit start \u003cservice-name\u003e\n\n# Stop a service\nzinit stop \u003cservice-name\u003e\n```\n\n```bash\n# Start the HTTP proxy on the default port (8080)\nzinit proxy\n```\n\nMore information about all the available commands can be found [here](docs/cmd.md).\n\n### Service Configuration\n\nZOS Init uses YAML files for service configuration. Here's a basic example:\n\n```yaml\n# Service configuration (e.g., /etc/zinit/myservice.yaml)\nexec: \"/usr/bin/myservice --option value\"   # Command to run (required)\ntest: \"/usr/bin/check-myservice\"            # Health check command (optional)\noneshot: false                              # Whether to restart on exit (default: false)\nafter:                                      # Services that must be running first (optional)\n  - dependency1\n  - dependency2\n```\n\nFor more information on how to configure service files, see the [service file reference](docs/services.md) documentation.\n\n### JSON-RPC API\n\nThe HTTP proxy provides a JSON-RPC 2.0 API for interacting with ZOS Init. You can send JSON-RPC requests to the HTTP endpoint you provided to the proxy:\n\n```bash\ncurl -X POST -H \"Content-Type: application/json\" -d '{\"jsonrpc\":\"2.0\",\"id\":1,\"method\":\"service_list\",\"params\":{}}' http://localhost:8080/\n```\n\nSee the [OpenRPC specs](openrpc.json) for more information about available RPC calls to interact with ZOS Init.\n\n## License\n\nThis project is licensed under the Apache License 2.0 - see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthreefoldtech%2Fzos_zinit","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fthreefoldtech%2Fzos_zinit","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fthreefoldtech%2Fzos_zinit/lists"}