(Optional) cryoSPARC and systemd

Installing cryoSPARC as a systemd service (requires root access)

To install the optional cryoSPARC systemd service, navigate to the folder cryosparc_master/systemd inside your cryoSPARC installation directory on the master node.

Run the following command, to ensure your shell's environment variables are setup correctly for cryoSPARC:

eval $(cryosparcm env)

Then, double check that the owner and group of the file install_services.sh matches the user and group that cryoSPARC runs as. Finally, execute the aforementioned script, as root and with the appropriate environment variables, as follows:

sudo env "CRYOSPARC_ROOT_DIR=$CRYOSPARC_ROOT_DIR" ./install_services.sh

You should have two new services installed:

  1. cryosparc-env.service

  2. cryosparc-supervisor.service

The former service (cryosparc-env) does some environment setup required by cryoSPARC, and the latter is the actual cryoSPARC service. To start cryoSPARC via systemd, run both services, in order.

sudo systemctl start cryosparc-env.service
sudo systemctl start cryosparc-supervisor.service

Only the latter service needs to be stopped to shut down cryoSPARC.

If you want to configure cryoSPARC to run on startup, both services need to be enabled:

sudo systemctl enable cryosparc-env.service
sudo systemctl enable cryosparc-supervisor.service

Notes

The systemd interface does not invalidate cryosparcm. You can continue to use cryosparcm to administrate cryoSPARC.

If you are running SELinux, it may prevent these services from functioning by default. Contact your system administrator for assistance configuring SELinux to allow the services to operate.

Troubleshooting

Users of Red Hat Enterprise Linux have reported difficulties getting the cryosparc systemd configuration working, likely due to SELinux. See the following discussion forum post for a workaround, until this is addressed:

https://discuss.cryosparc.com/t/cryosparc-3-0-systemd-setup-on-rhel8/5709