sproc 0.2.0

Simple service management
sproc-0.2.0 is not a library.
Visit the last successful build: sproc-0.5.6

sproc

Sproc is a simplified process manager that uses a composable configuration file to manage multiple services.

Config

Services are defined in Sproc using a simple services.toml file (passed into Sproc using the pin command).

[services.example]
command = "example --a b"           # required
working_directory = "/home/example" # required

  [services.example.environment]    # optional
  EXAMPLE_ENV_VAR = "42"

You can inherit the services defined in other files using the inherit field. Inherited service files cannot expose an inherit field.

inherit = ["/path/to/other/services.toml", "/path/to/other/other/services.toml"]

[services.example]
# ...

You can configure the server key and port in the server field:

[server]
port = 6374
key = "abcd"

# ...

The server is needed to start services that use the restart field. You can make services automatically restart (when spawned from the server) by setting restart to true:

[services.example]
command = "node index.js"
working_directory = "/home/example"
restart = true # this service will ONLY restart when started from the server

It is not recommended that you manually update the pinned services.toml file ($HOME/.config/sproc/services.toml). This file is regularly updated by the CLI and server, and manual changes should ONLY be done through sproc pin.

Usage

Load config file:

sproc pin {path}

Start service:

sproc run {name}

Start all services:

sproc run-all

Stop a service:

sproc kill {name}

Stop all services:

sproc kill-all

Get running service info:

sproc info {name}

Get info about all running services:

sproc info-all

Start observation server:

sproc serve