You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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:
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.
Introduce a new flag in ezmsg.core.command to set permissions on SHM for all-users
MacOS/Linux: Change permissions of SHM files once they're created in SHMServer
Windows: Research how this problem presents itself on Windows
Write unit test to validate other users can access SHM blocks.
Bonus feature request: Add ezmsg install and ezmsg uninstall that 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 a curl-able setup-script that could be run from the terminal that would install ezmsg GraphService as a single-user or multi-user install.
The text was updated successfully, but these errors were encountered:
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 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.command
to set permissions on SHM for all-usersezmsg install
andezmsg uninstall
that 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-able
setup-script that could be run from the terminal that would install ezmsg GraphService as a single-user or multi-user install.The text was updated successfully, but these errors were encountered: