Pada November 2014 , versi terbaru dari startxwin
penggunaan xinit
untuk memulai server Cygwin / X, yang sebenarnya disebut XWin.exe
. Prosesnya kira-kira seperti ini:
- Kamu panggil
startxwin
startxwin
membuat .Xauthority
file baru dan yang disebut.serverauth.1234
(di mana 1234
berubah setiap kali Anda memulai X)
startxwin
mengatur beberapa parameter klien dan server
startxwin
panggilan xinit
dengan parameter klien dan server, termasuk beberapa skrip shell opsional dan referensi ke file auth.
xinit
memulai X server, menjalankan beberapa skrip rc
xinit
memulai xterm
skrip klien (biasanya ) klien atau klien.Kami ingin menghindari ini
- Ketika Anda menutup klien atau skrip rc klien selesai,
xinit
matikan X server. Jika kita menghindari langkah 6, kita juga harus menghindari ini
Dimungkinkan untuk menjalankan XWin.exe
langsung dari dalam shell login Bash, tanpa tugas di sekitarnya startxwin
danxinit
melakukan. Keuntungan utama dari ini adalah berperilaku seperti yang kita inginkan: X server mulai dan tetap berjalan. Sayangnya, karena tidak ada .Xauthority
file yang diteruskan saat startup, server X Anda akan mengizinkan proses lokal untuk terhubung, yang tidak aman.
Untunglah itu xinit
melakukan sebagian besar hal yang tidak kita inginkan. Ada peretasan cepat yang memintas xinit
tetapi menjaga elemen yang tersisastartxwin
terkait dengan server itu sendiri.
TL; DR: Di startxwin
, ada garis di dekat bagian bawah yang berbunyi:
eval xinit \"$client\" $clientargs -- \"$server\" $display $serverargs
Ubah baris itu menjadi:
eval \"$server\" $display $serverargs
Mulai sekarang, startxwin
skrip akan memanggil XWin.exe
langsung, bukan menelepon xinit
. Jelas ini akan menonaktifkan skrip rc klien, tetapi kami tidak menginginkannya terlebih dahulu. Ini juga berarti bahwa X akan terus berjalan tanpa perlu proses klien untuk membuatnya tetap hidup (yaitu tetap tidak xinit
membunuhnya).
exec sleep infinity
seperti yang ditunjukkan di sini: x.cygwin.com/docs/faq/cygwin-x-faq.html#q-startxwinrc-exit