Skip to main content
util-ServiceWrapper

mod-ServiceWrapper

The ServiceWrapper is a special utility that allows any binary to run as a registered service, with full service.yaml support, service discovery, and dependency resolution. However, it does not support OTA live updates from the Web-UI. This allows developers to create a binary or script in any language they want, start it with the ServiceWrapper and then use all benefits of the ASE software framework.

Runs on Rover1 Debix
Precompiled binary available here
Adheres to Makefile spec
Source code is confidentially available using your Github token
Uses service.yaml
Registers with SystemManager

Functionalities

  • Write code in any language you like, run it using the ServiceWrapper and benefit of all ASE software stack benefits (service discovery, dependency resolution, tuning parameter listing)
  • Automatic restarts of your binary, in case your code exits with a nonzero exit code
  • Dependency information injected through environment variables
  • New tuning state broadcasts injected through stdin
  • Full support for service.yaml configurations

Running this module

  1. Download this module from the ASE Download Manager to your current working directory using curl
curl https://downloads.ase.vu.nl/api/mod-ServiceWrapper/latest -JL -o mod-ServiceWrapper.zip
  1. Unzip the downloaded zip file. This will deflate the precompiled binary and its service yaml
unzip mod-ServiceWrapper.zip
  1. Execute a binary using the ServiceWrapper
./mod-ServiceWrapper 'python3 test.py'

Runtime arguments

The last argument you pass should always be the path your binary or script. The ServiceWrapper binary also exposes all flags created by the pkg-ServiceRunner package. View its docs to understand how to use these flags. Some examples are highlighted below.

Running a Python script

./mod-ServiceWrapper 'python3 test.py'

Running a Python script with a custom service yaml

./mod-ServiceWrapper -service-yaml my-service.yaml 'python3 test.py'