Table of Contents

Fix: Cygwin: Cannot establish any listening sockets

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.

Error

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.

Solution

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:

Step One: Gain Ownership

Step Two: Set Permissions

Step Three: Delete The File