Prerequisites
- You have installed Arc and completed the Run an Arc Node tutorial with both layers syncing
- You have a Linux machine with systemd
- You have root or
sudoaccess
Step 1: Create the Execution Layer unit file
Write the systemd unit file to/etc/systemd/system/arc-execution.service:
The service files assume binaries are installed at
/usr/local/bin/. If you
built from source with cargo install, run the following from the repo root to
reinstall to that path: cargo install --path crates/node --root /usr/local.
Alternatively, update the ExecStart paths in both service files to match your
installation directory.The RuntimeDirectory=arc directive automatically creates /run/arc owned by
the User= account specified in the service file when the service starts. The
--metrics flag enables the Prometheus endpoint on port 9001.Step 2: Create the Consensus Layer unit file
Write the systemd unit file to/etc/systemd/system/arc-consensus.service. The
After and Requires directives ensure this service starts only after the
Execution Layer is running.
Step 3: Enable and start the services
Reload systemd, enable both services to start on boot, and start them:enable command outputs:
Step 4: Verify the services are running
Check the status of both services:Active: active (running) in their output. If a service
shows failed or activating, check its logs:
- Incorrect file paths in
ExecStart: Verify that the binary paths in the unit files match your installation directory. - Permission errors on data directories: Confirm that the
Userspecified in the unit file owns$HOME/.arc/. - Consensus Layer connection error: The Execution Layer may not be ready
yet. Wait for it to reach
active (running), then runsudo systemctl restart arc-consensus.
9001 (Execution Layer) and 29000 (Consensus Layer), see
Monitoring a Node.