{"id":17113376,"url":"https://github.com/kenjitakahashi/svctl","last_synced_at":"2025-04-13T03:58:45.645Z","repository":{"id":31777531,"uuid":"35343888","full_name":"KenjiTakahashi/svctl","owner":"KenjiTakahashi","description":"interactive runit controller","archived":false,"fork":false,"pushed_at":"2023-11-12T22:22:52.000Z","size":45,"stargazers_count":12,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-04-13T03:58:40.279Z","etag":null,"topics":["go","runit","tui"],"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/KenjiTakahashi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":".github/FUNDING.yml","license":"LICENSE.md","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},"funding":{"github":"KenjiTakahashi"}},"created_at":"2015-05-09T20:20:58.000Z","updated_at":"2024-11-20T22:48:37.000Z","dependencies_parsed_at":"2023-11-12T23:22:09.488Z","dependency_job_id":"70dc5789-64f6-401a-bed8-29147f5b7ea2","html_url":"https://github.com/KenjiTakahashi/svctl","commit_stats":{"total_commits":28,"total_committers":2,"mean_commits":14.0,"dds":0.1071428571428571,"last_synced_commit":"5013838a586df87f30133d42d53e2cdd9bc0ae0a"},"previous_names":[],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KenjiTakahashi%2Fsvctl","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KenjiTakahashi%2Fsvctl/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KenjiTakahashi%2Fsvctl/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/KenjiTakahashi%2Fsvctl/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/KenjiTakahashi","download_url":"https://codeload.github.com/KenjiTakahashi/svctl/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248661706,"owners_count":21141450,"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":["go","runit","tui"],"created_at":"2024-10-14T17:07:27.170Z","updated_at":"2025-04-13T03:58:45.616Z","avatar_url":"https://github.com/KenjiTakahashi.png","language":"Go","funding_links":["https://github.com/sponsors/KenjiTakahashi"],"categories":[],"sub_categories":[],"readme":"[![Build Status](https://github.com/KenjiTakahashi/svctl/actions/workflows/tests.yml/badge.svg?branch=master)](https://github.com/KenjiTakahashi/svctl/actions/workflows/tests.yml) [![Coverage](https://kenjitakahashi.github.io/svctl/master/badge.svg)](https://kenjitakahashi.github.io/svctl/master/)\n\n**svctl** is an interactive [runit](http://smarden.org/runit/) controller.\n\n## screenshot\n\n![screenshot](https://img.kenji.sx/svctl_static.png)\n\n## installation\n\n**Note:** Binaries are available for download at [Github Releases](https://github.com/KenjiTakahashi/svctl/releases).\n\nOtherwise, install from source:\n\n```bash\ngo install github.com/KenjiTakahashi/svctl@latest\n```\n\n## usage\n\nTyping `svctl` will show statuses of all services in current `SVDIR` and open a prompt for interactive use.\n\n### SVDIR\n\nIn accordance with the `sv` command, `svctl` uses `$SVDIR` environment variable value as the services directory. If not set, defaults to `/service/`.\n\n### commands\n\n* **...** means that multiple arguments can be supplied.\n* All service name arguments can contain standard globing characters, i.e. `*` and/or `?`.\n* While `sv` reads only first letter (e.g. `ugdef` is a valid `up` command), `svctl` expects either just the first letter or a full name of the command.\n\n**(e)xit / Ctrl-D** Terminates `svctl`.\n\n#### main\n\n`svctl` supports all standard `sv` commands, excluding `exit`/`shutdown`.\n\n\n**(u)p / start NAMES...** Starts service(s) with matching NAMES.\n\n**(d)own / stop NAMES...** Stops service(s) with matching NAMES.\n\n**r / restart NAMES...** Restarts service(s) with matching NAMES. Waits up to 7 seconds for the service to get back up, then reports TIMEOUT.\n\n**(o)nce NAMES...** Start service(s) once and does not try to restart them if they stop.\n\n**(p)ause NAMES...** Sends signal **STOP** to running service(s) with matching NAMES.\n\n**\\(c)ont NAMES...** Sends signal **CONT** to running service(s) with matching NAMES.\n\n**(h)up / reload NAMES...** Sends signal **HUP** to running service(s) with matching NAMES.\n\n**(a)larm NAMES...** Sends signal **ALRM** to running service(s) with matching NAMES.\n\n**(i)interrupt NAMES...** Sends signal **INT** to running service(s) with matching NAMES.\n\n**(q)uit NAMES...** Sends signal **QUIT** to running service(s) with matching NAMES.\n\n**1 NAMES...** Sends signal **USR1** to running service(s) with matching NAMES.\n\n**2 NAMES...** Sends signal **USR2** to running service(s) with matching NAMES.\n\n**(t)erm NAMES...** Sends signal **TERM** to running service(s) with matching NAMES.\n\n**(k)ill NAMES...** Sends signal **KILL** to running service(s) with matching NAMES.\n\n### deliberate omissions\n\n#### exit/shutdown\n\nI have decided not to support \"destructive\" commands, i.e. `exit` and `shutdown` in a third party tool. If you want to terminate `runsv` monitor completely, you should use `sv` directly.\n\n#### sv like cli\n\nThere is nothing wrong with `sv` and `svctl` is meant to complement, not replace, it. That is why there is only interactive usage and no standard CLI. Please use `sv` for your scripting needs.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkenjitakahashi%2Fsvctl","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fkenjitakahashi%2Fsvctl","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fkenjitakahashi%2Fsvctl/lists"}