We noticed some problems with the systemd setup, the 2 service files when upgrading from 2.16 to 3.0.1 (aside from the systemd configs, the update went troublefree).
Problem 1: On Centos/RHEL8 basically none of the systemd .service files worked out of the box.
As the paths could not be exec’d. This might be SElinux related. We ended up for
ExecStart=/usr/bin/env python3.7 INSTALLPATH>/deps/anaconda/envs/cryosparc_master_env/bin/supervisord -c <INSTALLPATH>/supervisord.conf ExecStartPost=/usr/bin/env <INSTALLPATH>/bin/cryosparcm start --systemd
which worked for us. For the supervisord service file probably the path replacement could be avoided using the env vars from the sourced EnvironmentFile - this is basicaally restoring the conda environment, which we rely on with our /usr/bin/env+python3.7 call.
Problem 2: location of supervisord.pid file (SELinux perm denied in the home directory)
We’ve systemd is waiting for the pid file, if it can’t read it. This can cause timeouts in service startup.
We’ve moved the pidfile to /run/cryosparc/supervisord.pid and adopted this setup in 2 locations:
(That should be a better fit anyways, as this is supposed to be non-persistent data, .pid and .lock files are supposed to go to /run hierarchy, so that cleanup is ensured on system reboot).