À chaque démarrage du serveur X de Cygwin à l'aide du lien "Serveur XWin" de mon menu Démarrer ou à startxwin
partir d'un shell Cygwin, une fenêtre xterm apparaît automatiquement, ce que je ne veux ni n'ai besoin.
Comment puis-je éviter cela?
(Question inspirée par ce commentaire de Stijn Vanpoucke à propos de Stack Overflow)
exec sleep infinity
comme indiqué ici: x.cygwin.com/docs/faq/cygwin-x-faq.html#q-startxwinrc-exitMISE À JOUR : Cette réponse est maintenant obsolète. Pour une réponse à jour, voir la réponse de l'utilisateur551570 ci-dessous .
De
man startxwin
:Par conséquent, pour éviter tout programme démarrant lorsque vous démarrez le serveur X, vous souhaitez un
.startxwinrc
fichier vide . Il suffit d’exécuter ce qui suit à partir d’une invite Cygwin:la source
.startxwinrc
entraîne la disparition immédiate du serveur X. :-(A partir de Novembre 2014 , les dernières versions de l'
startxwin
utilisationxinit
pour démarrer le serveur Cygwin / X, qui est en fait appeléXWin.exe
. Le processus ressemble à ceci:startxwin
startxwin
crée un nouveau.Xauthority
fichier et un appelé.serverauth.1234
(où1234
change à chaque démarrage de X)startxwin
configure certains paramètres du client et du serveurstartxwin
appelsxinit
avec les paramètres client et serveur, y compris certains scripts shell facultatifs et une référence au fichier auth.xinit
démarre le serveur X en exécutant certains des scripts rcxinit
démarre lexterm
script client (généralement ) ou client rc. Nous voulons éviter celaxinit
arrêtez le serveur X. Si nous évitons l’étape 6, nous devons également éviter cela.Il est possible d'exécuter
XWin.exe
directement à partir d'un shell de connexion Bash, sans les tâches qui entourentstartxwin
etxinit
exécutent. Le principal avantage de cela est qu’il se comporte comme nous le souhaitons: le serveur X démarre et reste actif. Malheureusement, aucun.Xauthority
fichier n’ayant été transmis au démarrage, votre serveur X permettrait à tout processus local de s'y connecter, ce qui n’est pas sécurisé.Heureusement, c'est ce
xinit
qui fait la plupart des choses que nous ne voulons pas. Il y a un piratage rapide qui contournexinit
mais garde les éléments restantsstartxwin
qui sont liés au serveur lui-même.TL; DR: Dans
startxwin
, il y a une ligne vers le bas qui se lit comme suit:Changer cette ligne à:
A partir de maintenant, le
startxwin
script appelleraXWin.exe
directement plutôt que d'appelerxinit
. Évidemment, cela désactivera tous les scripts rc client, mais nous ne les voulions pas au départ. Cela signifie également que X continuera à fonctionner sans recourir à un processus client pour le maintenir en vie (c.-à-xinit
d. Ne pas le tuer).la source
J'ai pris l'habitude de démarrer Cygwin X avec startxwin (.exe). Mon fichier .startxwinrc se lit comme suit:
Jusqu'ici, ça a fonctionné. La seule erreur que je reçois concerne l'affichage toujours "ouvert" par un autre processus X. Cette erreur spécifie un certain fichier que le serveur X génère par défaut pour chaque session. Les utilisateurs de Cygwin savent qu’il ne sera pas supprimé à la fin de la session.
Alors j'ai écrit un alias pour "guérir" que:
Je mets la même ligne - la partie entre les guillemets, en tout cas - dans mes fichiers .bashrc et .bash_profile au cas où j'oublierais de le faire moi-même.
HTH.
BZT
la source