1 votes

Accéder à "front end gui" depuis ssh (avec Synergy)

Donc, j'ai 3PC sur mon bureau, tous exécutant ubuntu 14.04 64bit. et tous exécutant la dernière version de Synergy, donc je n'utilise qu'un seul clavier et une seule souris pour contrôler 3 PC et 4 moniteurs. cela fonctionne très bien! mais, un problème.

chaque fois que je me connecte (déverrouille), je dois me connecter 3 fois. et chaque fois que je verrouille l'ordinateur, je dois le verrouiller 3 fois. (enfin, je dois verrouiller et me connecter à chacun des 3 PC individuellement).

jusqu'à présent, synergy n'a pas de système pour cela dans leur code, mais je pensais peut-être que je pourrais résoudre cela avec un script ssh? est-ce que quelqu'un a des idées sur la façon dont je pourrais le faire? est-ce même possible?

édition: j'ai reçu un indice, dans le commentaire ci-dessous, et j'ai essayé quelques choses (consultez ma propre réponse, pour voir ce que j'ai essayé jusqu'à présent), ce problème n'est toujours pas résolu, alors veuillez lire ma propre réponse ci-dessous, et voir si peut-être vous pouvez m'aider à comprendre pourquoi cela ne fonctionne pas, ou peut-être trouver une solution totalement différente.

3voto

Sverre Points 306

Je n'ai pas encore réussi à le faire fonctionner, mais je voulais ajouter ce que j'ai essayé, et comment cela a échoué jusqu'à présent, au cas où cela aiderait quelqu'un d'autre à voir ce que je fais de mal.

tout est basé sur le commentaire de c0rp, via ce lien (merci)

J'ai créé deux fichiers de script bash comme ceci :

1) /sbin/my_loginscript.sh (utilisé pour "se connecter" et ouvrir deux ordinateurs)

#!/bin/bash          
# 
# Script pour me connecter à mes autres ordinateurs quand je me connecte, gagner du temps
#
echo "Déverrouillage de l'ordinateur portable et de bureau"
ssh -X myuser@192.168.12.22 "export DISPLAY=:0; gnome-screensaver; gnome-screensaver-command -d;"
ssh -X myuser@192.168.12.203 "export DISPLAY=:0; gnome-screensaver; gnome-screensaver-command -d;"
echo "Maintenant, retour au travail" 

2) /sbin/my_logoutscript.sh (utilisé pour "se déconnecter" et fermer deux ordinateurs)

#!/bin/bash          
# 
# Script pour me connecter à mes autres ordinateurs quand je me connecte, gagner du temps
#
echo "Verrouillage de l'ordinateur portable et de bureau"
ssh -X myuser@192.168.12.22 "export DISPLAY=:0; gnome-screensaver; gnome-screensaver-command -l;"
ssh -X myuser@192.168.12.203 "export DISPLAY=:0; gnome-screensaver; gnome-screensaver-command -l;"
echo "Maintenant, un peu de repos"

Ces deux scripts fonctionnent assez bien, et lorsque je les lance directement, les deux ordinateurs de bureau supplémentaires "s'ouvrent et se ferment" et je peux utiliser synergy pour les contrôler, ce qui est beaucoup plus rapide que de se connecter manuellement aux deux ordinateurs supplémentaires.

Maintenant, j'essaie d'automatiser cela, et c'est là que j'ai des problèmes.

quand je me connecte à l'ordinateur (doit se déconnecter pour que cela fonctionne)

Je crée un nouveau fichier '/etc/xdg/autostart/my_script.desktop'

cela ressemble à ceci :

[Desktop Entry]
Type=Application
Name=global login
Exec=sudo /sbin/my_loginscript.sh
Icon=system-run
X-GNOME-Autostart-enabled=true

et cela fonctionne effectivement.. lorsque je me connecte, les deux autres écrans se déverrouillent comme je veux.

À faire : comment le fermer lorsque je me déconnecte ?

mais aussi, je ne me déconnecte presque JAMAIS de mon PC, je le VERROUILLE et DÉVERROUILLE seulement, c'est donc ce que je veux vraiment corriger, et voici comment j'ai essayé.

Je crée un nouveau fichier appelé '/etc/pm/sleep.d/99_resume.sh`

et cela ressemble à ceci :

#!/bin/bash

case "$1" in
thaw|resume)
    /sbin/my_loginscript.sh 2> /var/log/wakeup.log
    ;;
suspend|hibernate)
    /sbin/my_logoutscript.sh 2> /var/log/wakeup.log
    ;;
esac

mais cela ne semble pas fonctionner du tout, et j'ai du mal à le dépanner. si quelqu'un a des indices ou des conseils ici, ce serait très apprécié.

edit : Basé sur le commentaire de C0rp ci-dessous, j'ai édité son script, et il peut être trouvé (édité) ici:

essentiellement, une fois que vous avez cloné ou autrement créé le fichier event_catcher.sh, vous copiez d'abord mes deux fichiers my_logoutscript.shetmy_loginrescript.shcomme décrit précédemment,/sbin. Ensuite, démarrez le démon en exécutant cette commande./event_catcher.sh start`.

la prochaine fois que vous appuyez sur Ctrl Alt L votre ordinateur se verrouillera et vos autres PC se verrouilleront également.

PS : J'ai supposé que vous utilisez ssh-copy-id pour activer la connexion sur ces PC sans mot de passe.

donc, je considère la question réglée maintenant, mais j'attendrai un peu que c0rp voie s'il veut créer une réponse très rapide (au lieu de seulement des commentaires), et s'il le fait, je lui donnerai le crédit. Merci encore c0rp!

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X