as I understand, you are adding environment variable in OS and after restart it dissapear? I'm using this option in daily environment configurations. It is working fine.
I think here is proper solution:
Generally you can alway try to find solution for you os version and distribution. You need permanent solution, not session one 🙂
This really depends on how your services are started (shell script, systemd unit file, sysv init script). The best method is to set (export) the variable in the startup script/systemd unit file itself and not setting up the user or system shell profile.