Skip to main content
v0.7.3: minor release with no breaking changes. Upgrading from v0.7.2 requires no changes to your systemd unit files. For the full upgrade notes, see CHANGELOG.md and BREAKING_CHANGES.md.
Configure your Arc node’s Execution Layer and Consensus Layer as systemd services so they auto-restart on failure and survive reboots.

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 sudo access
The unit files below reference $USER and $HOME. The shell expands these to your current username and home directory before the file is written. After running each sudo tee command, review the generated unit with sudo cat /etc/systemd/system/arc-execution.service to confirm the paths are correct.

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.

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:
The enable command outputs:

Step 4: Verify the services are running

Check the status of both services:
Each command prints output similar to:
Both services display Active: active (running) in their output. If a service shows failed or activating, check its logs:
Common issues:
  • 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 User specified 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 run sudo systemctl restart arc-consensus.
To confirm sync progress, view logs, and verify the Prometheus metrics endpoints on ports 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.