Setiap kali saya memulai server X Cygwin menggunakan tautan "Server XWin" di menu Start saya, atau dengan menjalankan startxwin
dari shell Cygwin, saya secara otomatis mendapatkan jendela xterm yang muncul, yang tidak saya inginkan atau butuhkan.
Bagaimana saya menghindarinya?
(Pertanyaan terinspirasi oleh komentar ini oleh Stijn Vanpoucke di Stack Overflow)
exec sleep infinity
seperti yang ditunjukkan di sini: x.cygwin.com/docs/faq/cygwin-x-faq.html#q-startxwinrc-exitUPDATE : Jawaban ini sekarang kedaluwarsa. Untuk jawaban terkini, lihat jawaban user551570 di bawah ini .
Dari
man startxwin
:Jadi, untuk menghindari memulai program apa pun ketika Anda memulai X Server, Anda ingin yang kosong
.startxwinrc
file . Jalankan saja yang berikut dari prompt Cygwin:sumber
.startxwinrc
hasil kosong dalam penghilangan langsung X server. :-(Pada November 2014 , versi terbaru dari
startxwin
penggunaanxinit
untuk memulai server Cygwin / X, yang sebenarnya disebutXWin.exe
. Prosesnya kira-kira seperti ini:startxwin
startxwin
membuat.Xauthority
file baru dan yang disebut.serverauth.1234
(di mana1234
berubah setiap kali Anda memulai X)startxwin
mengatur beberapa parameter klien dan serverstartxwin
panggilanxinit
dengan parameter klien dan server, termasuk beberapa skrip shell opsional dan referensi ke file auth.xinit
memulai X server, menjalankan beberapa skrip rcxinit
memulaixterm
skrip klien (biasanya ) klien atau klien.Kami ingin menghindari inixinit
matikan X server. Jika kita menghindari langkah 6, kita juga harus menghindari iniDimungkinkan untuk menjalankan
XWin.exe
langsung dari dalam shell login Bash, tanpa tugas di sekitarnyastartxwin
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 memintasxinit
tetapi menjaga elemen yang tersisastartxwin
terkait dengan server itu sendiri.TL; DR: Di
startxwin
, ada garis di dekat bagian bawah yang berbunyi:Ubah baris itu menjadi:
Mulai sekarang,
startxwin
skrip akan memanggilXWin.exe
langsung, bukan meneleponxinit
. 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 tidakxinit
membunuhnya).sumber
Saya sudah terbiasa memulai Cygwin X dengan startxwin (.exe). File .startxwinrc saya berbunyi sebagai berikut:
Sejauh ini berhasil. Satu-satunya kesalahan yang saya dapatkan menyangkut tampilan masih "terbuka" oleh proses X lainnya. Kesalahan ini menentukan file tertentu yang dihasilkan server X secara default untuk setiap sesi. Orang-orang Cygwin sadar bahwa itu tidak bisa dihapus ketika sesi berakhir.
Jadi saya menulis alias untuk "menyembuhkan" itu:
Saya meletakkan baris yang sama - bagian di antara tanda kutip, pada tingkat apa pun - dalam file .bashrc dan .bash_profile saya jika saya lupa melakukannya sendiri.
HTH.
BZT
sumber