Wait Service is a pure rust program to test and wait on the availability of multiple services.
EXAMPLES:
wait-service --tcp localhost:27017 --tcp localhost:27018 -t 5 -- npm start # Wait for localhost:27017 and localhost:27018 (max 5 seconds) and then run `npm start`
wait-service --tcp localhost:27017 --uds /var/run/app.sock -t 0 -- npm start # Wait for localhost:27017 and /var/run/app.sock (forever) and then run `npm start`
wait-service --uds /var/run/app.sock --json /path/to/json -- npm start # Wait for /var/run/app.sock and other services defined in the json file (max 60 seconds) and then run `npm start`
Usage: wait-service [OPTIONS] -- <COMMAND>...
Arguments:
<COMMAND>... Command to execute after service is available
Options:
-t, --timeout <TIMEOUT> Set the timeout in seconds, zero for no timeout [default: 60]
--tcp <TCP>... Test and wait on the availability of TCP services
--uds <UDS>... Test and wait on the availability of UDS services [aliases: unix]
--json <JSON>... Test and wait on the availability of TCP or UDS services
-h, --help Print help
-V, --version Print version
With the --json
option, you can input one or more JSON files to import your TCP / UDS services. The content of each file needs to be a JSON array of objects.
For a TCP service, the object format is
{
"host": "example.com",
"port": 443
}
For a UDS service, the object format is
{
"uds": "/path/to/socket_file"
}