when a user tried to run FreeRADIUS daemon, the server reads/checks the config.... then goes ahead and opens up all required connections (SQL, REDIS)...then tries binding to eg port 1812 UDP and failing with the classic
Control socket '/var/run/radiusd/radiusd.sock' is already in use
Failed creating global listener for type 7
Failed starting event loop
EXIT(1) CALLED src/main/radiusd.c
perhaps the server can do the read/check and then check if socket etc already in use BEFORE going ahead to open up all those external connections?
This is hard to fix in a sane way. The server loads the modules first, and then loads the virtual servers.
Once we've redesigned the code in v4, it should be easier to fix.