Maintain validator uptime with systemd or Docker
Validators should be online as much as possible. If you're running your validator on a cloud server, or if you want your validator to automatically start running when the host machine restarts, consider running your client software as a background service through either Docker or systemd.
This may be overkill for at-home stakers who use the
prysm.sh script to run Prysm. To those users, we recommend keeping it simple by occasionally checking the status of your validator. See Check Software Status to learn more.
You can use Docker to run your beacon node and validators as background services. See Install with Docker. You can monitor and view your running Docker containers using
Linux systems allow for easy running of services in the background through a daemon process called systemd. You can follow the tutorial posted by Digital Ocean on setting up systemd services.
You can run your beacon node with the following systemd configuration, where you can modify some of the fields and flags to your liking. Assuming your prysm.sh script is at
[Unit]Description=Prysm Beacon chain daemonAfter=network-online.target [Service]ExecStart=/home/prysm/prysm.sh beacon-chainRestart=on-failureUser=YOUR_USER [Install]WantedBy=default.target
You can also run your validator client in systemd using the following configuration.
[Unit]Description=Prysm Validator daemonAfter=network-online.targetWants=prysm-beacon.service [Service]ExecStart=/home/prysm/prysm.sh validator --wallet-dir DIR/TO/prysm-wallet-v2 --wallet-password-file DIR/TO/YOUR_PASSWORDFILE --graffiti YOUR_GRAFFITIRestart=on-failureUser=YOUR_USER [Install]WantedBy=default.target