Jenkins自动化部署报Failed to get socket connection from

 Failed to get socket connection from UnityShaderCompiler.exe shader compiler

在使用jenkins对Unity进行自动打包部署时,遇到了上面的问题。从搜索结果来看,是因为jenkins需要为用到的exe开启进程,来收集错误和日志,当jenkins创建的进程数超出了限制,会导致进程开启失败,导致jenkins的打包流程失败。

解决办法就是增加系统可开启的进程数,操作如下

  1. Backup your registry before making any changes!

  2. Run regedit.exe as administrator

  3. Edit the registry value:

    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems\Windows
    
  4. You will see a string like:

    %SystemRoot%\system32\csrss.exe ObjectDirectory=\Windows SharedSection=1024,20480,768 Windows=On SubSystemType=Windows ServerDll=basesrv,1 ServerDll=winsrv:UserServerDllInitialization,3 ServerDll=winsrv:ConServerDllInitialization,2 ServerDll=sxssrv,4 ProfileControl=Off MaxRequestThreads=16
    

可以看到如下信息

SharedSection=1024,20480,768

解决办法就是讲第三个数值768改成2048,当然增加这个值的缺点就是会导致系统消耗的增加。修改完毕后需要重启电脑生效!

参考: https://*.com/questions/17472389/how-to-increase-the-maximum-number-of-child-processes-that-can-be-spawned-by-a-w/17472390#17472390

Jenkins自动化部署报Failed to get socket connection from

另外还有一个jenkins自己的解决方案,没看懂,有看懂的可以试一下:https://wiki.jenkins.io/display/JENKINS/Spawning+processes+from+build