Hi @bret
The three launchers are Server/RoonServer, Appliance/RoonAppliance and Appliance/RAATServer, and each carries the same line at 38. Leave check.sh alone, it only tests the value.
Rather than editing them by hand after every update, here is a version that reapplies itself on each start.
1. Open the service override
sudo systemctl edit roonserver.service
2. In the editor that opens, add
[Service]
LimitNOFILE=131072
ExecStartPre=-/bin/sh -c "sed -i 's/^ulimit -n 8192$/ulimit -n 131072/' /opt/RoonServer/Server/RoonServer /opt/RoonServer/Appliance/RoonAppliance /opt/RoonServer/Appliance/RAATServer"
Put this in the blank area near the top, above the line that reads “Edits below this comment will be discarded”. Anything added below that line is thrown away and the override will come out empty. Save with Ctrl+O, then Enter, then exit with Ctrl+X. You should see “Successfully installed edited file”.
The second line raises the ceiling the service is given. The third rewrites the limit in the three launchers just before Roon starts, so an update that restores the original files is corrected on the next start automatically.
3. Apply it
sudo systemctl daemon-reload
sudo systemctl restart roonserver
4. Confirm it took
grep -rn "ulimit -n" /opt/RoonServer
The three launchers should now read 131072. check.sh will still say 8192, which is correct and expected.
To remove it later, run sudo systemctl revert roonserver.service and restart the service, then reinstall Roon Server if you want the original files back exactly as shipped.
Two things worth saying plainly: this edits files inside the Roon installation, so it is a local workaround rather than a supported configuration, and it is worth undoing once the proper fix is out. We will post here when that happens.