Summary: Fix the Cygwin error 'Cannot establish any listening sockets' by gaining ownership on a locked file on a Windows AD Domain Server.
Date: Around 2019
Refactor: 2 January 2025: Checked links and formatting.
We encounter this message sometimes when an user doesn't close it's X-Server correctly on a Windows Server 2008 Terminal Server (although I think it will happen on other versions of Windows as well). It actually means there are locked files on the filesystem to ensure there are no two sessions at the same time on the same port. These files are found in the tmp directory under the cygwin installation root, which is by default at C:\Cygwin:
C:\cygwin\tmp>dir Volume in drive C has no label. Volume Serial Number is 98D6-2DE4 Directory of C:\cygwin\tmp 16-02-2011 09:39 <DIR> . 16-02-2011 09:39 <DIR> .. 19-01-2011 12:42 11 .X0-lock 19-01-2011 12:42 <DIR> .X11-unix 1 File(s) 11 bytes 3 Dir(s) 21.463.330.816 bytes free C:\cygwin\tmp>cd .X11-unix C:\cygwin\tmp\.X11-unix>dir /a Volume in drive C has no label. Volume Serial Number is 98D6-2DE4 Directory of C:\cygwin\tmp\.X11-unix 19-01-2011 12:42 <DIR> . 19-01-2011 12:42 <DIR> .. 19-01-2011 12:42 54 X0 1 File(s) 54 bytes 2 Dir(s) 21.462.609.920 bytes free
If you try to delete the files you'll get a permissions error:
C:\cygwin\tmp>del .X0-lock C:\cygwin\tmp\.X0-lock Access is denied.
Normally we ask the user who left the files to restart his session and close it again properly. However, we had one time that the user already left the team which left us with the challenge on how to delete the locked files. This is how we did it: