Cada vez que inicio el servidor X de Cygwin usando el enlace "Servidor XWin" en mi menú Inicio, o ejecutándome startxwin
desde un shell de Cygwin, automáticamente aparece una ventana xterm, que no quiero ni necesito.
¿Cómo evito eso?
(Pregunta inspirada en este comentario de Stijn Vanpoucke sobre Stack Overflow)
exec sleep infinity
como se muestra aquí: x.cygwin.com/docs/faq/cygwin-x-faq.html#q-startxwinrc-exitACTUALIZACIÓN : Esta respuesta ahora está desactualizada. Para obtener una respuesta actualizada, consulte la respuesta del usuario 551570 a continuación .
De
man startxwin
:Por lo tanto, para evitar que cualquier programa se inicie cuando inicia el servidor X, desea un
.startxwinrc
archivo en blanco . Simplemente ejecute lo siguiente desde un indicador de Cygwin:fuente
.startxwinrc
resultado vacío en la desaparición inmediata del servidor X. :-(A partir de noviembre de 2014 , las últimas versiones de
startxwin
usoxinit
para iniciar el servidor Cygwin / X, que en realidad se llamaXWin.exe
. El proceso es algo como esto:startxwin
startxwin
crea un nuevo.Xauthority
archivo y uno llamado.serverauth.1234
(donde1234
cambia cada vez que inicia X)startxwin
configura algunos parámetros de cliente y servidorstartxwin
llamadasxinit
con los parámetros del cliente y el servidor, incluidos algunos scripts de shell opcionales y una referencia al archivo de autenticación.xinit
inicia el servidor X, ejecutando algunos de los scripts rcxinit
inicia el cliente (generalmentexterm
) o el script rc del cliente. Queremos evitar estoxinit
apaga el servidor X. Si evitamos el paso 6, también debemos evitarlo.Es posible ejecutar
XWin.exe
directamente desde un shell de inicio de sesión Bash, sin las tareas que lo rodeanstartxwin
yxinit
realizar. La principal ventaja de esto es que se comporta como queremos: el servidor X se inicia y sigue ejecutándose. Desafortunadamente, dado que no se pasa ningún.Xauthority
archivo durante el inicio, su servidor X permitiría que cualquier proceso local se conecte a él, lo cual es inseguro.Afortunadamente, es lo
xinit
que hace la mayoría de las cosas que no queremos. Hay un truco rápido que omitexinit
pero mantiene los elementos restantesstartxwin
relacionados con el servidor en sí.TL; DR: En
startxwin
, hay una línea cerca de la parte inferior que dice:Cambia esa línea a:
A partir de ahora, el
startxwin
script llamaráXWin.exe
directamente, en lugar de llamarxinit
. Obviamente, esto deshabilitará los scripts de cliente rc, pero no queríamos esos en primer lugar. También significa que X continuará ejecutándose sin necesidad de un proceso de cliente para mantenerlo vivo (es decir, evitarxinit
matarlo).fuente
Me he acostumbrado a iniciar Cygwin X con startxwin (.exe). Mi archivo .startxwinrc dice lo siguiente:
Hasta ahora, ha funcionado. El único error que obtengo se refiere a que la pantalla todavía está "abierta" por otro proceso X Este error especifica un determinado archivo que el servidor X genera de forma predeterminada para cada sesión. La gente de Cygwin es consciente de que no se elimina cuando finaliza la sesión.
Entonces escribí un alias para "curar" que:
Pongo la misma línea, la parte entre comillas, en cualquier caso, en mis archivos .bashrc y .bash_profile en caso de que me olvide de hacerlo yo mismo.
HTH
BZT
fuente