Ascend is a lightweight and portable service manager built on the eli Lua-based framework. It efficiently manages application services and is open-source under the AGPL-3.0 license.
- Lightweight and portable
- Built on the eli Lua-based framework
- Open-source under the AGPL-3.0 license
- Unix-based operating system
- eli framework installed
- Basic knowledge of command-line operations
1. Install ascend:
Ascend relies on the eli framework. To install the latest binary release of ascend, run:
wget https://raw.githubusercontent.com/alis-is/ascend/main/tools/setup/standalone-linux.sh -O /tmp/setup-ascend.sh && sh /tmp/setup-ascend.sh
This command downloads and executes the installation script for ascend
, asctl
and eli
and setup the path for them.
If needed please use sudo
Ascend utilizes environment variables for its configuration. You can override the default settings by setting the following environment variables:
ASCEND_SERVICES
: Path to the services directory.ASCEND_HEALTHCHECKS
: Path to the health checks directory.ASCEND_SOCKET
: Path to the IPC endpoint socket.ASCEND_LOGS
: Path to the log directory.ASCEND_INIT
: Path to the initialization script.
To set these environment variables in a Unix-based system, use the export
command:
export ASCEND_SERVICES=/path/to/your/services
export ASCEND_HEALTHCHECKS=/path/to/your/healthchecks
export ASCEND_SOCKET=/path/to/your/socket
export ASCEND_LOGS=/path/to/your/logs
export ASCEND_INIT=/path/to/your/init_script
Replace /path/to/your/...
with the actual paths you intend to use.
Execute ascend:
ascend
Ascend will read the environment variables and manage the defined services accordingly.
asctl start <service-name>
asctl stop <service-name>
asctl restart <service-name>
asctl list
asctl status <service-name>
asctl show <service-name>
Replace <service-name>
with the name of your service.
Ascend logs service output to files located in the logs directory within the project folder. Each service has its own log file named after the service (e.g., <service-name>.log
).
This project is licensed under the AGPL-3.0 License. See the LICENSE file for details.
Note: Ensure you have the necessary permissions to execute scripts and manage services on your system
git clone https://github.com/alis-is/ascend.git
cd ascend/src
export ASCEND_SERVICES=../tests/assets/services/1
export ASCEND_LOGS=../logs
ascend --log-level=trace
In another terminal u can run the asctl
commands to check the running service.