{"id":18631311,"url":"https://github.com/bahamas10/vsv","last_synced_at":"2025-04-11T06:32:03.591Z","repository":{"id":62444891,"uuid":"452408636","full_name":"bahamas10/vsv","owner":"bahamas10","description":"Manage and view runit services","archived":false,"fork":false,"pushed_at":"2024-04-18T05:55:09.000Z","size":2632,"stargazers_count":91,"open_issues_count":0,"forks_count":2,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-03-25T10:37:50.263Z","etag":null,"topics":["runit","runit-service","void-linux"],"latest_commit_sha":null,"homepage":"","language":"Rust","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/bahamas10.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGES.md","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}},"created_at":"2022-01-26T19:18:17.000Z","updated_at":"2025-03-21T10:20:47.000Z","dependencies_parsed_at":"2024-04-18T06:40:00.105Z","dependency_job_id":"bd930d62-d6f1-4d3b-b498-f16ad2f9a596","html_url":"https://github.com/bahamas10/vsv","commit_stats":null,"previous_names":["bahamas10/rust-vsv"],"tags_count":1,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bahamas10%2Fvsv","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bahamas10%2Fvsv/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bahamas10%2Fvsv/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/bahamas10%2Fvsv/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/bahamas10","download_url":"https://codeload.github.com/bahamas10/vsv/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248356305,"owners_count":21090184,"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":["runit","runit-service","void-linux"],"created_at":"2024-11-07T05:06:33.519Z","updated_at":"2025-04-11T06:32:03.042Z","avatar_url":"https://github.com/bahamas10.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"`vsv` - Void Service Manager\n============================\n\nManage and view runit services.\n\n**Note:** This is a rewrite in Rust of [`vsv`][vsv] which was originally written\nin Bash.\n\n`vsv` was inspired by [`vpm`][vpm].  `vsv` is to `sv` as `vpm` is to the\n`xbps-*` commands.\n\nInstallation\n------------\n\n### On Void\n\n    xbps-install -S vsv\n\n### Using `crates`\n\n    cargo install vsv\n\n### Compile yourself\n\n    git clone git@github.com:bahamas10/vsv.git\n    cd vsv\n    cargo build\n\nExamples\n--------\n\nRun `vsv` without any arguments to get process status.  This is equivalent to\nrunning `vsv status`:\n\n\u003cimg alt=\"vsv-status\" src=\"assets/vsv-status.jpg\" width=\"600\" /\u003e\n\n**Note:** `sudo` or escalated privileges are required to determine service state\nbecause of the strict permissions on each service's `supervise` directory.\n\n`vsv` scans the `/var/service` directory by default, which can be overridden by\nsetting the `$SVDIR` environmental variable or passing in a `-d \u003cdir\u003e` argument.\nAny service that has been in a state for less than 5 seconds will be marked\nin red and any less than 30 seconds will be marked in yellow, making new or\nfailing services easy to spot:\n\n\u003cimg alt=\"vsv-add-service.jpg\" src=\"assets/vsv-add-service.jpg\" width=\"600\" /\u003e\n\nWe can isolate the service by passing it as a \"filter\" to `status`.\n\n\u003cimg alt=\"vsv-filter.jpg\" src=\"assets/vsv-filter.jpg\" width=\"600\" /\u003e\n\nA string can be passed as the first argument after `status` to filter for\nservices that contain that string in their name.  Also, `-t` can be supplied to\n`status` to print the process tree of the pid for that process:\n\n\u003cimg alt=\"vsv-arguments.jpg\" src=\"assets/vsv-arguments.jpg\" width=\"600\" /\u003e\n\nAny command other than `status` will be passed directly to the `sv` command.\nRestarting a service is as easy as `vsv restart \u003csvc\u003e`:\n\n\u003cimg alt=\"vsv-restart.jpg\" src=\"assets/vsv-restart.jpg\" width=\"600\" /\u003e\n\nTo stop a service, `vsv down \u003csvc\u003e` or `vsv stop \u003csvc\u003e` can be used:\n\n\u003cimg alt=\"vsv-down.jpg\" src=\"assets/vsv-down.jpg\" width=\"600\" /\u003e\n\nA full service tree can be generated with `vsv -t`.  This command is equivalent\nto running `vsv status -t`:\n\n\u003cimg alt=\"vsv-tree.jpg\" src=\"assets/vsv-tree.jpg\" width=\"600\" /\u003e\n\n`-l` can be specified to view log services for each service as well.  This\ncommand is equivalent to running `vsv status -l virt`:\n\n\u003cimg alt=\"vsv-log.jpg\" src=\"assets/vsv-log.jpg\" width=\"600\" /\u003e\n\n`-t` can be specified with `-l` to view log services as a tree for each service\nas well as normal services.  This command is equivalent to running `vsv status\n-tl virt`:\n\n\u003cimg alt=\"vsv-log-tree.jpg\" src=\"assets/vsv-log-tree.jpg\" width=\"600\" /\u003e\n\nUsage\n-----\n\nQuick Examples:\n\n- `vsv` - show all services\n- `vsv status` - same as above\n- `vsv stop \u003csvc\u003e` - stop a service\n- `vsv start \u003csvc\u003e` - start a service\n- `vsv restart \u003csvc\u003e` - restart a service\n- `vsv enable \u003csvc\u003e` - enable a service (autostart at boot)\n- `vsv disable \u003csvc\u003e` - disable a service (no autostart at boot)\n- `vsv hup \u003csvc\u003e` - refresh a service (`SIGHUP`)\n\nStatus:\n\nThe `status` subcommand has the following fields:\n\n- `SERVICE` - the service (directory) name.\n- `STATE` - the service state: output from `.../$service/supervise/stat`.\n- `ENABLED` - if the service is enabled (lacks the `.../$service/down` file).\n- `PID` - the pid of the process being monitored.\n- `COMMAND` - arg0 from the pid being monitored (first field of `/proc/$pid/cmdline`.\n- `TIME` - time the service has been in whatever state it is in.\n\nCommand Usage:\n\n    $ vsv -h\n     __   _______   __\n     \\ \\ / / __\\ \\ / /   Void Service Manager\n      \\ V /\\__ \\\\ V /    Source: https://github.com/bahamas10/vsv\n       \\_/ |___/ \\_/     MIT License\n       -------------\n        Manage and view runit services\n        Made specifically for Void Linux but should work anywhere\n        Author: Dave Eddy \u003cdave@daveeddy.com\u003e (bahamas10)\n\n    vsv 2.0.0\n    Runit service manager CLI\n\n    USAGE:\n        vsv [OPTIONS] [SUBCOMMAND]\n\n    OPTIONS:\n        -c, --color \u003cyes|no|auto\u003e    Enable or disable color output\n        -d, --dir \u003cdir\u003e              Directory to look into, defaults to env SVDIR or /var/service if\n                                     unset\n        -h, --help                   Print help information\n        -l, --log                    Show log processes, this is a shortcut for `status -l`\n        -t, --tree                   Tree view, this is a shortcut for `status -t`\n        -u, --user                   User mode, this is a shortcut for `-d ~/runit/service`\n        -v, --verbose                Increase Verbosity\n        -V, --version                Print version information\n\n    SUBCOMMANDS:\n        disable    Disable service(s)\n        enable     Enable service(s)\n        help       Print this message or the help of the given subcommand(s)\n        status     Show process status\n\n    Any other subcommand gets passed directly to the 'sv' command, see sv(1) for\n    the full list of subcommands and information about what each does specifically.\n    Common subcommands:\n\n        start \u003cservice\u003e           Start the service\n        stop \u003cservice\u003e            Stop the service\n        restart \u003cservice\u003e         Restart the service\n        reload \u003cservice\u003e          Reload the service (send SIGHUP)\n\nEnvironmental Variables:\n\n- `SVDIR`: The directory to use, passed to the `sv` command, can be overridden\n  with `-d \u003cdir\u003e`.\n- `PROC_DIR`: A Linux procfs directory to use for command name lookups, defaults\n  to `/proc`.\n- `SV_PROG`: The command to use for any \"external\" subcommand given to `vsv`,\n  defaults to `sv`.\n- `PSTREE_PROG`: The command to use to get a process tree for a given pid,\n  defaults to `pstree`.\n- `NO_COLOR`: Set this environmental variable to disable color output.\n\nSyntax\n------\n\nAll source code should be clean of `cargo clippy` and `cargo fmt`.  You can use\n`make` to ensure this:\n\n```\n$ make check\ncargo check\n    Finished dev [unoptimized + debuginfo] target(s) in 0.01s\ncargo clippy\n    Finished dev [unoptimized + debuginfo] target(s) in 0.12s\n$ make fmt\ncargo fmt\n```\n\nLicense\n-------\n\nMIT License\n\n[vpm]: https://github.com/netzverweigerer/vpm\n[vsv]: https://github.com/bahamas10/bash-vsv\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbahamas10%2Fvsv","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbahamas10%2Fvsv","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbahamas10%2Fvsv/lists"}