{"id":16950036,"url":"https://github.com/tailhook/procboss","last_synced_at":"2025-06-25T03:41:05.321Z","repository":{"id":66116403,"uuid":"2133783","full_name":"tailhook/procboss","owner":"tailhook","description":"Process supervisor","archived":false,"fork":false,"pushed_at":"2013-11-17T16:33:35.000Z","size":356,"stargazers_count":9,"open_issues_count":2,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-25T16:45:04.902Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/tailhook.png","metadata":{"files":{"readme":"README.rst","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}},"created_at":"2011-07-31T20:59:49.000Z","updated_at":"2017-09-08T03:36:48.000Z","dependencies_parsed_at":"2023-02-19T22:45:26.002Z","dependency_job_id":null,"html_url":"https://github.com/tailhook/procboss","commit_stats":null,"previous_names":[],"tags_count":13,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tailhook%2Fprocboss","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tailhook%2Fprocboss/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tailhook%2Fprocboss/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/tailhook%2Fprocboss/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/tailhook","download_url":"https://codeload.github.com/tailhook/procboss/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248477549,"owners_count":21110513,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","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":"2024-10-13T21:56:40.585Z","updated_at":"2025-04-11T20:35:49.869Z","avatar_url":"https://github.com/tailhook.png","language":"C","readme":"Process Boss\n============\n\nProcess boss is a tiny supervisor program.\n\nFeatures:\n\n* Running programs and restarting on crash\n* Setting environment, uid, chroot, scheduling, affinity without running tons\n  of external utilities\n* Opening files and providing them as file descriptors (useful to bind to\n  tcp port \u003c 1024 or for fastcgi programs)\n* Fast restart in case of crash (reaping SIGCHLD)\n* Control interface throught fifo to stop/restart processes\n* User-friendly and featureful configuration in yaml\n* Bash and Zsh completion for remote control utilities\n* Logging of process deaths and restarts\n* Running multiple similar processes, optionally keeping some shared file\n  descriptor open. Dynamically adding processed.\n* In case it's not clear from above, can act as spawn-fcgi\n* Tagging processed for easier managing, like restart all processes of some\n  project\n\nWill never happen:\n\n* Monitoring memory, cpu, whatever (there are better tools, e.g. collectd)\n* Being replacement for init\n* Networking\n* Other bloat\n\nBugs:\n\nWe currently use environment variables for all the process tracking, which\nhave the following implications:\n\n* it doesn't work for some programs trying to mangle own environment like\n  nginx (althrought nginx has it's own supervisor)\n* it's not totally secure, any bossd child can imitate other child, by modifing\n  environment, blocking that one to restart in case of crash (this\n  vulnerability is tradeoff of being very robust, and it's quite hard to\n  exploit for our setup, but you have been warned!)\n\nDependencies\n------------\n\nRuntime dependencies:\n\n    * linux kernel 2.6.27 (needs signalfd)\n    * libyaml\n\nBuild dependencies:\n\n    * python3\n    * coyaml\n    * docutils (for python3)\n\nBuilding\n--------\n\nBasic workflow is the following::\n\n    git clone git://github.com/tailhook/procboss.git\n    cd procboss\n    git submodule update --init\n    ./waf configure --prefix=/usr\n    ./waf build\n    sudo ./waf install\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftailhook%2Fprocboss","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ftailhook%2Fprocboss","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ftailhook%2Fprocboss/lists"}