web-dev-qa-db-fra.com

Comment récupérer une interface utilisateur / fenêtre perdue

Je fais maintenant face à cette situation: j'exécute plusieurs instances de Matlab sur un serveur de calcul (système d'exploitation serveur: Xubuntu 14.04, système d'exploitation de ma machine locale: Ubuntu 14.04). J'ai utilisé NoMachine pour me connecter au serveur. NoMachine fonctionne normalement mais la dernière fois, NoMachine a gelé et j'ai dû forcer la fermeture de NoMachine. Lorsque j'ai redémarré NoMachine et que je suis revenu sur le serveur, j'ai trouvé que toutes les fenêtres/interfaces graphiques de mes instances Matlab avaient disparu. Ils fonctionnent maintenant en arrière-plan, comme je peux le voir en haut, et ils consomment encore pas mal de ressources CPU. De plus, je peux toujours observer la sortie de traitement des données dans le dossier de sortie. J’ai demandé à Matlab de sauvegarder les données traitées. Je peux donc affirmer qu’elles fonctionnent bien en arrière-plan. Cependant, j'ai perdu toutes les fenêtres/interfaces graphiques de toutes les instances Matlab.

Dans l'image, la commande top montre que les matlabs sont toujours en cours d'exécution et consomment pas mal de ressources CP

Comment puis-je récupérer ces fenêtres/interfaces graphiques? Plus précisément, je souhaite restaurer cette fenêtre de l'instance de matlab qui s'exécute en arrière-plan.

Ceci est l'interface graphique Matlab que je veux récupérer

Je peux voir le PID de Matlab du haut. Alors, existe-t-il une commande de terminal intégrée telle que setWindowToFront (PID) qui m'aide à récupérer les fenêtres perdues par PID? Commande intégrée de préférence car je ne suis pas autorisé à installer un package/une application sur la machine serveur de l'école.

ps. Je ne peux pas me permettre de supprimer l'instance de matlab et de redémarrer matlab, car le calcul prend un mois, et je suis à moitié terminé.

ps. La commande bg ou fg ne peut pas aider, ils affichent "pas de travail"

ps. Windows/Interface graphique ne peut pas être dans d'autres espaces de travail, car je n'ai qu'un seul espace de travail.

ps. Je n'ai pas lancé Matlab via un terminal en premier lieu. J'ai lancé matlab en cliquant avec la souris.

Merci beaucoup!

4
Ray
  1. Obtenez une copie de wmctrl, il s’agit d’un package simple et à commande unique

    _apt-get download wmctrl
    mkdir wmctrl_deleteme
    dpkg-deb -X wmctrl_1.07-7_AMD64.deb wmctrl_deleteme/
    cd wmctrl_deleteme/usr/bin/
    _

    Mieux vaut le mettre dans _~/bin_ pour une utilisation facile.

  2. Vérifiez que ces fenêtres sont gérées par WM

    _./wmctrl -l
    _
  3. Si elles sont répertoriées, essayez cette option ( man wmctrl )

    _   -R <WIN>
              Move the window <WIN> to the current desktop, raise the window, and give it focus.
    _

    Soit en utilisant le titre ou l’identifiant de la fenêtre, Exemples:

    _./wmctrl -R Home
    ./wmctrl -i -R 0x02e00238
    _
2
user.dz