我正在尝试为 vc x 服务器创建一个服务,但命令通过服务超时,但我可以直接从命令行运行它
C:\Users\Vishwa Pravin>sc.exe create vcxsrv binPath= "\"C:\Program Files\VcXsrv\vcxsrv.exe\" :2 -ac -terminate -lesspointer -multiwindow -clipboard -wgl -dpi auto" displayname= "VC X Server"
[SC] CreateService SUCCESS
C:\Users\Vishwa Pravin>sc.exe start vcxsrv
[SC] StartService FAILED 1053:
The service did not respond to the start or control request in a timely fashion.
C:\Users\Vishwa Pravin> "C:\Program Files\VcXsrv\vcxsrv.exe" :2 -ac -terminate -lesspointer -multiwindow -clipboard -wgl -dpi auto
C:\Users\Vishwa Pravin>
答案1
Windows 上的服务需要比普通程序做更多的事情——它们需要响应服务管理器发送的“服务控制”消息,例如表明它们已准备就绪(完全启动)。VcxSrv 不会这样做(因此出现“未响应”错误消息),因此您需要通过类似srvany
或srvany-ng
而不是直接。
(此外,Windows 上的服务无法访问您的 GUI 环境 - 它们服务,从定义上讲,它们不是 GUI 应用程序。可以将它们标记为“交互式”服务,以便它们可以访问控制台显示,但这在多用户系统或 RDP 连接中效果不佳,而且考虑到您当前正尝试以“SYSTEM”权限运行服务(甚至高于管理员权限,而 X11 服务器肯定不需要这种权限),这有点危险。)