То, что запись в файловой системе удалена, не означает, что файловый дескриптор перестает работать.
Когда приложение GUI запускается, оно подключается к /tmp/.X11-unix/X0 и получает дескриптор файла. Отныне он использует файловый дескриптор, /tmp/.X11-unix/X0 больше не нужен этому приложению и, следовательно, если вы его удалите, с запущенными приложениями ничего не произойдет.
Однако попытка запустить новые приложения больше не сработает.
В Linux есть расширение, позволяющее использовать имена, не привязанные к файловой системе: абстрактные имена, описание см. в unix(7). Поскольку они не используют файловую систему, не имеет значения, была ли запись файловой системы удалена.
Похоже, X поддерживает оба типа сокетов. Таким образом, клиенты могут выбрать, какой из них они хотят использовать. Таким образом, после удаления сокета из файловой системы новые клиенты, использующие абстрактное имя, все еще могут быть запущены, тогда как новые клиенты, использующие сокет в файловой системе, не запустятся. Однако старые клиенты будут продолжать работать в обоих случаях.
person
Meixner
schedule
24.07.2015