{"id":21193566,"url":"https://github.com/moqsien/processes","last_synced_at":"2026-03-07T17:06:05.131Z","repository":{"id":59046865,"uuid":"532731560","full_name":"moqsien/processes","owner":"moqsien","description":"process management in go. go语言进程管理.","archived":false,"fork":false,"pushed_at":"2022-09-22T06:14:20.000Z","size":68,"stargazers_count":3,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-04T14:46:49.420Z","etag":null,"topics":["cmd","dmicro","go","multiprocessing","process"],"latest_commit_sha":null,"homepage":"","language":"Go","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/moqsien.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}},"created_at":"2022-09-05T03:37:37.000Z","updated_at":"2023-02-02T10:40:11.000Z","dependencies_parsed_at":"2023-01-18T18:17:04.752Z","dependency_job_id":null,"html_url":"https://github.com/moqsien/processes","commit_stats":null,"previous_names":[],"tags_count":3,"template":false,"template_full_name":null,"purl":"pkg:github/moqsien/processes","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moqsien%2Fprocesses","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moqsien%2Fprocesses/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moqsien%2Fprocesses/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moqsien%2Fprocesses/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moqsien","download_url":"https://codeload.github.com/moqsien/processes/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moqsien%2Fprocesses/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":30222549,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-03-07T17:00:40.062Z","status":"ssl_error","status_checked_at":"2026-03-07T17:00:39.026Z","response_time":53,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.6:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"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":["cmd","dmicro","go","multiprocessing","process"],"created_at":"2024-11-20T19:14:46.274Z","updated_at":"2026-03-07T17:06:05.118Z","avatar_url":"https://github.com/moqsien.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"### 说明\nDMicro微服务框架的多进程管理代码在众多go微服务框架中，感觉设计上面比较有意思，也比较方便通用。\n这里把DMicro中的supervisor模块抠出来了，进行了一些优化，结构更清晰，代码更简洁，更容易阅读和修改。\n可以按照DMicro的DServer设计一套微服务管理框架。适配不局限于DRpc、ghttp等。\n目前仅支持linux。\n\n### 功能\n- [x] 提供日志功能\n- [x] 提供进程自动重启功能\n- [x] 启动失败自动重试 \n- [x] 进程启动成功确认(过多少秒之后检查一次，进程仍在运行，则说明成功) \n- [x] 提供进程管理功能\n- [x] 进程平滑重启\n\n### 使用方法\n```go\nmanager := NewProcManager()\npath := os.Args[0]\nname := \"test\"\n// 如果不传path，默认为os.Args[0]\nprocess, _ := manager.NewProcess(name,\n                                processes.ProcPath(path),\n                                processes.ProcArgs([]string{\"go\", \"get\", \"xxx\"}))\nprocess.StartProc(true)\n```\n[简单示例](https://github.com/moqsien/processes/blob/main/examples/main.go)\n\n### 设计原理\n1、exec.Cmd创建进程，执行外部命令；\n\n2、Process异步起动，可以传入wait参数阻塞父goroutine\n\n3、ProcManager管理正在运行的进程\n\n4、通过向进程发送SIGNAL控制进程的退出\n\n5、通过Clone实现平滑重启\n\n### Thanks To\n[DMicro](https://github.com/osgochina/dmicro/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoqsien%2Fprocesses","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoqsien%2Fprocesses","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoqsien%2Fprocesses/lists"}