A deployment of ezmsg may feature a GraphServer/SHMServer launched from a systemd service file or startup script that runs ezmsg serve as a system user, possibly named ezmsg. When this is done, all SHM blocks are created as that user, and no other users on the machine have permission to use them. The error is thrown when a client process started by a different user on the machine starts up:
PermissionError: [Errno 13] Permission denied: '/psm_xxxxxxxx'
On Linux/MacOS it is likely possible to change the permissions for the SHM files manually using os.chmod. I'm not sure what the requirements are for getting this to work in Windows -- Its possible that services are run as the current user and this could just work. Whatever needs to be done to share blocks across users should only be done if a specific flag is set on the command line, as keeping the GraphServer sandboxed to a particular user might be useful/valuable in many deployments. Unit tests will also need to be written to check that other users can connect to the SHM blocks on that machine.
A deployment of ezmsg may feature a GraphServer/SHMServer launched from a systemd service file or startup script that runs
ezmsg serveas a system user, possibly namedezmsg. When this is done, all SHM blocks are created as that user, and no other users on the machine have permission to use them. The error is thrown when a client process started by a different user on the machine starts up:On Linux/MacOS it is likely possible to change the permissions for the SHM files manually using
os.chmod. I'm not sure what the requirements are for getting this to work in Windows -- Its possible that services are run as the current user and this could just work. Whatever needs to be done to share blocks across users should only be done if a specific flag is set on the command line, as keeping the GraphServer sandboxed to a particular user might be useful/valuable in many deployments. Unit tests will also need to be written to check that other users can connect to the SHM blocks on that machine.ezmsg.core.commandto set permissions on SHM for all-usersezmsg installandezmsg uninstallthat configures an ezmsg GraphServer to run on startup. This would configure a systemd service file on Linux, but would look different for MacOS and Windows. It may also be useful to provide acurl-ablesetup-script that could be run from the terminal that would install ezmsg GraphService as a single-user or multi-user install.