Run Adon Core Wallet as a service on Linux

2021-11-01 Knowledge Base

The Adon Core Wallet can be setup as a service on Linux to start automatically when the server starts.

  1. Create the service definition file as /lib/systemd/system/ADONd.service

  2. Put the following content in the file. Make sure you customize the user (set to ADON-user in the example below, and the path to the ADONd binary)

    # It is not recommended to modify this file in-place, because it will
    # be overwritten during package upgrades. If you want to add further
    # options or overwrite existing ones then use
    # $ systemctl edit ADONd.service
    # See "man systemd.service" for details.
    #
    # Note that almost all daemon options could be specified in
    # /home/ADON-user/.ADON/ADON.conf
    #
    [Unit]
    Description=ADON daemon
    After=network.target
    Documentation=man:ADONd(1)
    #
    [Service]
    ExecStart=/home/ADON-user/ADON-core/bin/ADONd -daemon -datadir=/home/ADON-user/.ADON -conf=/home/ADON-user/.ADON/ADON.conf -pid=/run/ADONd/ADONd.pid
    # Creates /run/ADONd owned by ADON-user
    RuntimeDirectory=ADONd
    User=ADON-user
    Type=forking
    PIDFile=/run/ADONd/ADONd.pid
    Restart=on-failure
    #
    # Hardening measures
    ####################
    #
    # Provide a private /tmp and /var/tmp.
    PrivateTmp=true
    #
    # Mount /usr, /boot/ and /etc read-only for the process.
    ProtectSystem=full
    #
    # Disallow the process and all of its children to gain
    # new privileges through execve().
    NoNewPrivileges=true
    #
    # Use a new /dev namespace only populated with API pseudo devices
    # such as /dev/null, /dev/zero and /dev/random.
    PrivateDevices=true
    #
    # Deny the creation of writable and executable memory mappings.
    MemoryDenyWriteExecute=true
    #
    [Install]
    WantedBy=multi-user.target
  3. Update systemd configuration:

    sudo systemctl daemon-reload
  4. Start the service

    sudo systemctl start ADONd
  5. You can check the status with:

    sudo systemctl status ADONd
  6. If successful enable for system startup:

    sudo systemctl enable ADONd