Failed to get socket connection from UnityShaderCompiler.exe shader compiler
在使用jenkins對Unity進行自動打包部署時,遇到了上面的問題。從搜索結果來看,是因爲jenkins需要爲用到的exe開啓進程,來收集錯誤和日誌,當jenkins創建的進程數超出了限制,會導致進程開啓失敗,導致jenkins的打包流程失敗。
解決辦法就是增加系統可開啓的進程數,操作如下
-
Backup your registry before making any changes!
-
Run regedit.exe as administrator
-
Edit the registry value:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Session Manager\SubSystems\Windows
-
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,當然增加這個值的缺點就是會導致系統消耗的增加。修改完畢後需要重啓電腦生效!
另外還有一個jenkins自己的解決方案,沒看懂,有看懂的可以試一下:https://wiki.jenkins.io/display/JENKINS/Spawning+processes+from+build