Configure your Arc node’s Execution Layer and Consensus Layer as systemd
services so they auto-restart on failure and survive reboots.The Each command prints output similar to:Both services display Common issues:
Prerequisites
Before you begin, ensure that you’ve:- Installed Arc and completed the Run an Arc node tutorial with both layers syncing
- Prepared a Linux machine with systemd
- Obtained 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
installed with arcup, the binaries live in ~/.arc/bin/. Update the
ExecStart paths accordingly, or symlink the binaries into /usr/local/bin/.
If you built from source with cargo install, binaries default to
~/.cargo/bin/. Add --root /usr/local to cargo install to place them under
/usr/local/bin/ instead.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. The --full flag
is required on the first start when bootstrapping from a pruned snapshot. Remove
it on subsequent starts if you prefer to run without pruning. When --full is
used, EL pruning runs on a 128-block interval (changed from 5000 in v0.7.3);
pass --prune.block-interval=5000 explicitly to retain the previous schedule.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
Monitor a node. To set up local Prometheus and
Grafana dashboards on the same host, see
Set up Prometheus and Grafana for an Arc node.