web-dev-qa-db-fra.com

Démarrez Synergy (ou n’importe quelle application) AVANT de vous connecter à Ubuntu 16.04.2 LTS

Utiliser Ubuntu 16.04.2 (Xenial) sur Intel x64 : {Les deux Processeur et installation Ubuntu}

Cette question a été répondue un million de fois, mais aucune des solutions ne fonctionne. Donc, je ne veux pas dupliquer une question, mais on n'y a pas répondu.

Lorsque je lance un terminal et Sudo -i, la commande suivante fonctionne exactement comme prévu.

`root@user-pc:~# /usr/bin/synergyc -f --no-tray --debug INFO --name 
 user-pc 192.168.xxx.xxx:24800
 [2017-05-23T09:20:44] NOTE: started client
 [2017-05-23T09:21:01] NOTE: connecting to '192.168.5.100': 
 192.168.5.100:24800
 [2017-05-23T09:21:01] NOTE: connected to server`

Je peux ensuite utiliser le programme à cette fin. Cependant, je veux que cela se fasse automatiquement avant de me connecter afin que je puisse utiliser son but depuis l'écran de connexion. (Synergy vous permet d'utiliser un clavier et une souris sur plusieurs ordinateurs, presque comme un KVM virtuel, mais au lieu d'appuyer sur des commutateurs, vous devez simplement faire glisser votre souris sur l'écran suivant comme s'ils étaient tous connectés à une carte graphique)

La première chose que j'ai essayée était rc.local :

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.

exec /usr/bin/synergyc -f --no-tray --debug INFO --name user-pc 192.168.5.100:24800

exit 0

~~~ ls /etc/rc.local -l:

-rwxr-xr-x 1 root root 390 May 22 20:56 /etc/rc.local

Donc, c'est certainement exécutable, mais au redémarrage du PC:

~~~ ps aux | grep syner:

`root  990  0.0  0.0  63656  5372 ?  Ssl  09:33  0:00 
 /usr/bin/synergyc -f --no-tray --debug INFO --name user-pc 
 192.168.5.100:24800`

Cependant, il ne fait pas ce qu'il est censé faire, même les dialogues d'unité sont appelés comme disant que quelque chose a mal tourné, ce qui ne se produit que lorsque cela s'exécute, je peux donc en déduire que c'est bien cela.

Mon hypothèse la plus sûre est que le programme est exécuté correctement, le problème est que rc.local est exécuté avant le démarrage de la session x, de sorte que les connexions au clavier et à la souris ne sont jamais établies, ce qui ne se fera probablement qu'au début de la session. l'exécution de synergyc et que vous n'avez pas tenté de nouveau au-delà de ce point.

La deuxième chose que j'ai essayée était "Applications de démarrage", cela fonctionne, mais seulement après la connexion, ce qui n'est pas ce que nous souhaitons.

Si mon hypothèse est correcte:

Quel est le moyen d'appeler l'exécution d'un processus après la mise en service du serveur x, mais avant tout utilisateur doit se connecter.

Si mon hypothèse n'est pas correcte:

Help

14
DeeJayh

Pour 16.04.2 créez le fichier suivant (il n'existe pas)

/etc/lightdm/lightdm.conf

avec le contenu:

[Seat:*]
autologin-user=

[SeatDefaults]
greeter-setup-script=/usr/bin/synergyc --name <hostname> 192.168.x.x

Suivez ceci guide du wiki ubunt pour plus d'informations.


EDIT:

De man synergyc :

COMMENCER AUTOMATIQUEMENT ...

les options ne doivent pas inclure -f ou --no-daemon. Il est important de s’assurer qu’aucune ancienne copie de Synergy n’est en cours d’exécution afin de ne pas interférer avec la nouvelle.

5
jringoot

Allez dans votre startup..pour les débutants comme moi le faire de cette façon:

  • "rechercher sur votre ordinateur" tapez start, cliquez sur Startup Applications
  • cliquez sur Ajouter

    • Nom: Synergie
    • Commande: parcourez si vous voulez mais son/usr/bin/synergy

    thats it, ne pas ajouter n'importe quel "c", rien à la fin de la synergie.

Maintenant, j'ai aussi le script en cours d'exécution parce que j'étais trop paresseux pour le supprimer .. de sorte que les deux sont là.

[Seat:*]
autologin-user=

[SeatDefaults]
greeter-setup-script=/usr/bin/synergyc --MediaServer 192.168.2.253:port

maintenant pour trouver le port est intéressant, ce n'est pas le port par défaut alors faites ce type dans le terminal

netstat  -atn

maintenant, comment j'ai trouvé qu'il s'agissait de chercher l'adresse IP de votre serveur ... Je connais l'adresse IP de mon serveur SYNERGY, de sorte qu'elle se trouve juste en face de l'adresse IP de mon client et de son numéro de port.

1
leebrendalee