I'm trying to set up remote login for the CentOS 7 machine in our office, so that users can connect using TigerVNC from windows clients and reach a gdm login screen. Previously, I followed these instructions to use XDMCP and everything worked as expected: anyone on the local network could connect to server on port 5950 and they would reach a gdm greeter screen where they could login. However, that was with the nouveau graphics driver and unfortunately the CAD software we use requires nVidia drivers (and we also need to use this remotely).
After installing the nvidia drivers and verifying that everything (gnome, CAD software etc.) seems to run fine on the server, I discovered that remote login no longer worked: connecting with TigerVNC reaches an error screen "Oh no! Something has gone wrong". I believe this is because Gnome requires 3D acceleration, and the nVidia graphics driver does not work properly with this. So I tried VirtualGL and found that I could now start a vnc server and run 3D applications with vglrun:
$ vglrun vncserver
Actually, because of this issue I also had to prepend ssh-agent to the command:
$ /usr/bin/ssh-agent vglrun vncserver
vncserver has a launch script in ~/.vnc/xstartup which I can edit so that the vglrun command is run before Xvnc, and so users could connect with ssh and start their own vnc servers. But I want to use xinetd for convenience, however I don't know how to configure the xinetd service to run Xvnc with ssh-agent and vglrun. This is my initial configuration, saved to /etc/xinetd.d/xvncserver:
disable = no
log_type = SYSLOG daemon debug
protocol = tcp
socket_type = stream
wait = no
user = nobody
server = /usr/bin/Xvnc
server_args = -inetd -query localhost -once -geometry 1024x768 -depth 24 securitytypes=none
# server = /usr/bin/ssh-agent
# server_args = vglrun /usr/bin/Xvnc -inetd -query localhost -once -geometry 1024x768 -depth 24 securitytypes=none
The above config results in the "something went wrong" error on the VNC screen (presumably because gnome failed to start). I tried replacing the commented lines so
server = /usr/bin/ssh-agent, and everything else is in the
server_args, but this resulted in the TigerVNC client being unable to connect, reporting "reading version failed: not an RFB server?".
How can I configure my xinetd server to launch Xvnc properly with vglrun (and ssh-agent)?