<p><em>Réponse courte :</em></p>
<p>Essayez :</p>
<pre><code class="lang-auto">wslg ~ dbus-launch gnome-terminal
</code></pre>
<p><em>Explication :</em></p>
<p>Cela ne semble pas être un problème avec les “applications graphiques” en général, mais plutôt avec des applications spécifiques.</p>
<p>Par exemple, si vous installez <code>xterm</code> et le configurez comme raccourci de la même manière, je pense que vous constaterez que le raccourci fonctionne comme vous pourriez l’attendre sans avoir préalablement lancé l’application depuis la ligne de commande.</p>
<p>Gnome Terminal, en revanche, est (pour énoncer l’évidence) une application Gnome. La plupart des applications Gnome nécessitent <em>au moins</em> le support D-Bus, et beaucoup nécessitent Systemd. Heureusement, Gnome Terminal nécessite uniquement D-Bus.</p>
<p>Si vous le lancez depuis la ligne de commande dans une nouvelle instance WSL, vous verrez avec un <code>ps -efH</code> qu’il a démarré une instance D-Bus de session utilisateur pour vous. Si vous avez <code>gvfs</code> installé (ce qui n’est pas le cas par défaut, bien que peut-être il a été installé comme dépendance de Gnome Terminal), vous verrez également que son daemon a été démarré (via D-Bus).</p>
<p>Donc quand vous lancez ensuite, ultérieurement, <code>wslg ~ gnome-terminal</code>, D-Bus est déjà en cours d’exécution et Gnome Terminal se lance correctement. (<em>Note :</em> C’est en fait un peu plus compliqué que cela, car Gnome Terminal se lance réellement dans le cadre d’une application client-serveur et c’est le serveur qui ne démarre pas dans ce cas.)</p>
<p>Mais quand vous essayez de le lancer directement via :</p>
<ul>
<li>
<p><code>wslg ~ gnome-terminal</code></p>
</li>
<li>
<p>Ou même simplement <code>wsl ~ gnome-terminal</code></p>
</li>
</ul>
<p>… alors il me semble qu’un bug WSL assez obscur entre en jeu. Il est possible que ce soit “attendu” dans la façon dont WSL démarre, mais j’ai rencontré cela par le passé, et il me <em>semble</em> que le processus <code>init</code> de WSL est trop agressif pour récupérer et terminer les processus orphelins lancés par un autre processus pendant le démarrage.</p>
<p>Donc dans ce cas, d’après ce que je peux en dire (et je n’ai pas encore fait de <code>strace</code> pour confirmer), Gnome Terminal tente de démarrer D-Bus, mais <code>init</code> le récupère et le ferme (incorrectement, je <em>pense</em>). En conséquence, sans D-Bus en cours d’exécution, Gnome Terminal (en fait le serveur, je pense) ne démarre pas.</p>
<p>Le contournement ci-dessus, cependant, lance explicitement Gnome Terminal <em>à l’intérieur</em> d’une session D-Bus, donc les choses fonctionnent comme prévu.</p>