Kasım 2014 itibariyle , aslında adlandırılan Cygwin / X sunucusunu başlatmak için en son startxwinkullanım sürümleri . Süreç böyle bir şeye gider:xinitXWin.exe
- Sen ara
startxwin
startxwinyeni bir .Xauthoritydosya ve bir dosya oluşturur .serverauth.1234( 1234X'i her başlattığınızda değişir)
startxwin bazı istemci ve sunucu parametrelerini ayarlar
startxwinxinitisteğe bağlı kabuk komut dosyaları ve kimlik doğrulama dosyasına bir başvuru da dahil olmak üzere istemci ve sunucu parametreleriyle çağrı yapar .
xinit rc sunucusunu çalıştırarak X sunucusunu başlatır
xinitistemciyi (genellikle xterm) veya istemci rc komut dosyasını başlatır . Bundan kaçınmak istiyoruz
- İstemciyi kapattığınızda veya istemci rc komut dosyası tamamlandığında,
xinitX sunucusunu kapatır. 6. adımdan kaçınırsak, bundan da kaçınmamız gerekir
Çalıştırmak mümkündür XWin.exeçevreleyen görevler olmadan Bash giriş kabuğu içinde doğrudan startxwinve xinitgerçekleştirin. Bunun ana avantajı, istediğimiz gibi davranmasıdır: X sunucusu başlar ve çalışmaya devam eder. Ne yazık ki, .Xauthoritybaşlatma sırasında herhangi bir dosya geçirilmediğinden, X sunucunuz herhangi bir yerel işlemin ona bağlanmasına izin verir, bu da güvensizdir.
Neyse ki xinitistemediğimiz şeylerin çoğunu yapıyor. Atlayan xinitancak startxwinsunucunun kendisiyle ilgili kalan öğeleri tutan hızlı bir saldırı var .
TL; DR: İçinde startxwin, dibine yakın bir satır var:
eval xinit \"$client\" $clientargs -- \"$server\" $display $serverargs
Bu satırı şu şekilde değiştirin:
eval \"$server\" $display $serverargs
Bundan sonra, startxwinkomut dosyası çağırmak XWin.exeyerine doğrudan arayacaktır xinit. Açıkçası bu, herhangi bir istemci rc komut dosyasını devre dışı bırakacaktır, ancak ilk başta bunları istemedik. Ayrıca, X'in hayatta kalması için bir istemci sürecine ihtiyaç duymadan çalışmaya devam edeceği anlamına gelir (yani xinitöldürmekten kaçının).
exec sleep infinityburada gösterildiği gibi: x.cygwin.com/docs/faq/cygwin-x-faq.html#q-startxwinrc-exit